Java. Не рисует картинку на JFrame
Формулировка задачи:
На фрейме есть кнопка, при нажатии на которую увеличивается count и вызывается repaint:
Метод paint(Graphics g):
Так же есть метод ImageDraw(Graphics g, String s1), который пытался реализовать двумя способами:
1. В первом случае, walkable <> null, но картинка не рисуется на фрейме.
2. Во втором, картинка ридером не считывается и выкидыватся ошибка (javax.imageio.IIOException: Can't read input file!):
Почему картинки нормально отрисовываются два раза, а на третий раз падают?
Интересует, в большей степени, почему не рисует в первом способе, но был бы благодарен за разъяснение обоих случаев.
Если это поможет, то вот ссылка на весь проект: https://www.dropbox.com/s/yihei3vxr64ugpt/KleninaJavaFinal.zip?dl=0
Спасибо!
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();
}public void paint(Graphics g){
ImageDraw(g, s);
jButtonGo.repaint();
}public void ImageDraw(Graphics g, String s1){
ImageIcon icon = new ImageIcon(s1);
Image walkable = icon.getImage();
g.drawImage(walkable, 0, 0, this);
}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);
}Решение задачи: «Java. Не рисует картинку на JFrame»
textual
Листинг программы
s = "pic/Lesson2.png";