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";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д