Java. Не рисует картинку на JFrame

Узнай цену своей работы

Формулировка задачи:

На фрейме есть кнопка, при нажатии на которую увеличивается count и вызывается repaint:
Листинг программы
  1. private void jButtonGoActionPerformed(java.awt.event.ActionEvent evt) {
  2. ++count;
  3. switch(count) {
  4. case 1:
  5. s = "/Users/danilenkodanilasergeevic/Java/KleninaJavaFinal/pic/Lesson2.png";
  6. jButtonGo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pokaok.png")));
  7. break;
  8. case 2:
  9. jButtonGo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/davaigo.png")));
  10. s = "/Lesson31.png";
  11. break;
  12. }
  13. repaint();
  14. }
Метод paint(Graphics g):
Листинг программы
  1. public void paint(Graphics g){
  2. ImageDraw(g, s);
  3. jButtonGo.repaint();
  4. }
Так же есть метод ImageDraw(Graphics g, String s1), который пытался реализовать двумя способами: 1. В первом случае, walkable <> null, но картинка не рисуется на фрейме.
Листинг программы
  1. public void ImageDraw(Graphics g, String s1){
  2. ImageIcon icon = new ImageIcon(s1);
  3. Image walkable = icon.getImage();
  4. g.drawImage(walkable, 0, 0, this);
  5. }
2. Во втором, картинка ридером не считывается и выкидыватся ошибка (javax.imageio.IIOException: Can't read input file!):
Листинг программы
  1. public void ImageDraw(Graphics g, String s1){
  2. Image im = null;
  3. try {
  4. im = (ImageIO.read(new File(s1)));
  5. } catch (IOException ex) {
  6. Logger.getLogger(LessonJFrame.class.getName()).log(Level.SEVERE, null, ex);
  7. }
  8. g.drawImage(im, 0, 0, null);
  9. }
Почему картинки нормально отрисовываются два раза, а на третий раз падают? Интересует, в большей степени, почему не рисует в первом способе, но был бы благодарен за разъяснение обоих случаев. Если это поможет, то вот ссылка на весь проект: https://www.dropbox.com/s/yihei3vxr64ugpt/KleninaJavaFinal.zip?dl=0 Спасибо!

Решение задачи: «Java. Не рисует картинку на JFrame»

textual
Листинг программы
  1. s = "pic/Lesson2.png";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут