2015-02-25 3 views
-3

Я следующий код, в котором я создал JTextArea и Menubar, в котором я добавил MENUITEM Inc.Приращение значение целого числа в JTextArea

Я закодированы значение «VAL» = 0, так что когда код запускается и появляется кадр, первое, что видно, равно нулю. Но я хочу увеличить этот «0» до + 1, когда нажата кнопка «Inc». Право знать, что продолжает отображать «0», когда я нажимаю Inc Мой код выглядит следующим образом:

 public class Menu 
     { 
     public static void main(String[] args) 
      { 

      myFrame frame = new myFrame(); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setVisible(true); 
      frame.setSize(300, 500); 
      frame.setLocation(600,300); 
      frame.setTitle("My Menu"); 
      } 
    } 
    class myFrame extends JFrame implements ActionListener 
    { 

     private static final long serialVersionUID = 1L; 

     JTextArea area; 
     JMenuItem inc; 
     int val = 0; 

     public myFrame() 
     { 

     JTextArea area = new JTextArea(20,15); 
     add(new JScrollPane(area), BorderLayout.CENTER); 

     String aString = Integer.toString(val); 
     area.setText(String.valueOf(aString)); 

     JMenuBar menuBar = new JMenuBar(); 
     JMenu menu = new JMenu("Count"); 

     menuBar.add(menu); 
     setJMenuBar(menuBar); 

     JMenuItem inc = new JMenuItem("Inc"); 
     menu.add(inc); 

     inc.addActionListener(this); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // TODO Auto-generated method stub 
     if(e.getActionCommand().equals("Inc")) 
    { 
    int result = val+1; 
    String aString = Integer.toString(result); 

    area.setText(String.valueOf(aString)); 
    } 

    } 
} 
+1

Посмотрите на консоли. Вы должны увидеть трассировку стека исключения NullPointerException. Проанализируйте трассировку стека и попытайтесь выяснить, что такое null и почему это так. Подсказка: поля экземпляров и локальные переменные. –

+0

Читайте о [переменных] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html). – alex2410

ответ

2

В myFrame конструктору заменить JTextArea area = new JTextArea(20,15); с area = new JTextArea(20,15);

2

Вы перезаписать area переменную.

Изменение:

JTextArea area = new JTextArea(20,15); 

To:

area = new JTextArea(20,15); 
Смежные вопросы