Вывод картинок в яве (продолжение темы - Глобальные переменные keylistener) - Java
Формулировка задачи:
Здравствуйте! необходима загрузка картинок на форму, потом их смена при нажатии на клавиши, а так же(в листинге не реализована) проигрывание мелодии на форме. выдает ошибку Exception in thread "main" java.lang.NullPointerException.
package my3000; import java.awt.*; import javax.swing.*; import java.io.*; import javax.imageio.*; import java.awt.event.*; /** * * @author maxim */ public class My3000 { /** * @param args * the command line arguments */ public static void main(String[] args) { DataClass.index=false; System.out.println("dcwdc"); MyFrame frame = new MyFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.addKeyListener(new KeyListener() { @SuppressWarnings("empty-statement") public void keyTyped(KeyEvent ke) // обработка нажатий клавиш { char c; c = ke.getKeyChar(); System.out.println("Get key char: " + c); switch (c) { case 'a': DataClass.path = "C:/1.jpg"; break; case 'd': DataClass.path = "ccccc"; break; } } public void keyPressed(KeyEvent ke) { } public void keyReleased(KeyEvent ke) { } }); // TODO code application logic here } } class MyFrame extends JFrame { public MyFrame() { setTitle("MainFraim"); setSize(1300, 800); MyPanel panel = new MyPanel(); Container pane = getContentPane(); pane.add(panel); } } class DataClass { public static String path; public static boolean index; } class MyPanel extends JPanel { private Image im; public MyPanel() { try { im = ImageIO.read(new File(DataClass.path)); } catch (IOException exception) { } } public void paintComponent (Graphics g) { super.paintComponent(g); g.drawImage(im,22,22,null); g.drawString(DataClass.path, 112, 12); setSize(1200,800); repaint(); } }
Решение задачи: «Вывод картинок в яве (продолжение темы - Глобальные переменные keylistener)»
textual
Листинг программы
package my3000; import java.awt.Container; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; /** * * @author maxim */ public class My3000 { /** * @param args * the command line arguments */ public static void main(String[] args) { DataClass.index=false; System.out.println("dcwdc"); MyFrame frame = new MyFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.addKeyListener(new KeyListener() { @SuppressWarnings("empty-statement") public void keyTyped(KeyEvent ke) // обработка нажатий клавиш { char c; c = ke.getKeyChar(); System.out.println("Get key char: " + c); switch (c) { case 'a': DataClass.path = "image/matroskyn.png"; break; case 'd': DataClass.path = "ccccc"; break; } } public void keyPressed(KeyEvent ke) { } public void keyReleased(KeyEvent ke) { } }); // TODO code application logic here } } class MyFrame extends JFrame { public MyFrame() { setTitle("MainFraim"); setSize(1300, 800); MyPanel panel = new MyPanel(); Container pane = getContentPane(); pane.add(panel); } } class DataClass { public static String path; public static boolean index; } class MyPanel extends JPanel { private Image im; public MyPanel() { DataClass.path = ""; } public void paintComponent (Graphics g) { super.paintComponent(g); if (DataClass.path.contains("/")) { // если путь имеет косую черту try { im = ImageIO.read(new File(DataClass.path)); } catch (IOException exception) { } g.drawImage(im,22,22,null); } g.drawString(DataClass.path, 112, 12); setSize(1200,800); repaint(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д