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