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

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

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

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

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

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

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


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

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

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