Глобальные переменные keylistener - Java

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

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

Здравствуйте! нужна программа которая при нажатии клавиши меняет значение параметра drawstring. Объявил глобальную переменную DataClass.Path. Прога скомпилировалась, а значение параметра при нажатии клавиш "d" и "a" не меняется. Что делать? код ниже
Листинг программы
  1. package my3000;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import java.io.*;
  5. import javax.imageio.*;
  6. import java.awt.event.*;
  7. /**
  8. *
  9. * @author maxim
  10. */
  11. public class My3000 {
  12. /**
  13. * @param args the command line arguments
  14. */
  15. public static void main(String[] args) {
  16. DataClass.path="aaaaa";
  17. System.out.println("dcwdc");
  18. MyFrame frame = new MyFrame();
  19. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  20. frame.show();
  21. frame.addKeyListener(new KeyListener() {
  22. @SuppressWarnings("empty-statement")
  23. public void keyTyped(KeyEvent ke) // обработка нажатий клавиш
  24. {
  25. char c;
  26. c = ke.getKeyChar();
  27. switch (c){
  28. case 'a' : DataClass.path="bbbbb";
  29. break;
  30. case 'd' : DataClass.path="ccccc";
  31. break;
  32. }
  33. }
  34. public void keyPressed(KeyEvent ke) {}
  35. public void keyReleased(KeyEvent ke) {}
  36.  
  37. });
  38. // TODO code application logic here
  39. }
  40. }
  41.  
  42. class MyFrame extends JFrame
  43. {
  44. public MyFrame()
  45. {
  46. setTitle("MainFraim");
  47. setSize(300,200);
  48. MyPanel panel = new MyPanel();
  49. Container pane=getContentPane();
  50. pane.add(panel);
  51. }
  52. }
  53. class MyPanel extends JPanel
  54. {
  55. private Image im;
  56. public MyPanel()
  57.  
  58. {
  59. try
  60. {
  61. im=ImageIO.read(new File(DataClass.path));
  62. }
  63. catch (IOException exception)
  64. {}
  65. }
  66. public void paintComponent (Graphics g)
  67. {
  68. super.paintComponent(g);
  69. // g.drawImage(im,22,22,null);
  70. g.drawString(DataClass.path, 12, 12);
  71. }
  72. }

Решение задачи: «Глобальные переменные keylistener»

textual
Листинг программы
  1. public class My3000 {
  2.  
  3.     /**
  4.      * @param args
  5.      *            the command line arguments
  6.      */
  7.     public static void main(String[] args) {
  8.         DataClass.path = "aaaaa";
  9.        
  10.         System.out.println("dcwdc");
  11.         MyFrame frame = new MyFrame();
  12.        
  13.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.        
  15.         frame.setVisible(true);
  16.        
  17.         frame.addKeyListener(new KeyListener() {
  18.             @SuppressWarnings("empty-statement")
  19.             public void keyTyped(KeyEvent ke) // обработка нажатий клавиш
  20.             {
  21.                 char c;
  22.                 c = ke.getKeyChar();
  23.                
  24.                 System.out.println("Get key char: " + c);
  25.                 switch (c) {
  26.                 case 'a':
  27.                     DataClass.path = "bbbbb";
  28.  
  29.                     break;
  30.                 case 'd':
  31.                     DataClass.path = "ccccc";
  32.                     break;
  33.                 }
  34.             }
  35.  
  36.             public void keyPressed(KeyEvent ke) {
  37.             }
  38.  
  39.             public void keyReleased(KeyEvent ke) {
  40.             }
  41.  
  42.         });
  43.         // TODO code application logic here
  44.     }
  45.  
  46. }
  47.  
  48. class MyFrame extends JFrame {
  49.     public MyFrame() {
  50.         setTitle("MainFraim");
  51.         setSize(300, 200);
  52.         MyPanel panel = new MyPanel();
  53.         Container pane = getContentPane();
  54.         pane.add(panel);
  55.     }
  56. }
  57.  
  58. class DataClass {
  59.     public static String path;
  60. }
  61.  
  62. class MyPanel extends JPanel {
  63.  
  64.     private Image im;
  65.  
  66.     public MyPanel() {
  67.         try {
  68.             im = ImageIO.read(new File(DataClass.path));
  69.         } catch (IOException exception) {
  70.            
  71.         }
  72.     }
  73.  
  74.     public void paintComponent (Graphics g) {  
  75.             super.paintComponent(g);
  76.             //  g.drawImage(im,22,22,null);
  77.            
  78.              g.drawString(DataClass.path, 12, 12);
  79.            
  80.              setSize(100,50);
  81.              
  82.              repaint();
  83.     }
  84. }

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


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

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

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут