2012-06-04 3 views
-5

код дает ошибку исключения nullpointer ..... wat to do?Программирование Java GUI

import java.awt.event.*; 
import javax.swing.*; 

public class Gui implements ActionListener{ 
JButton button; 

public Gui(){ 
    JFrame frame=new JFrame(); 
    JButton button =new JButton("click me!"); 
    button.addActionListener(this); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().add(button); 
    frame.setSize(270,300); 
    frame.setVisible(true); 
} 
public static void main(String[] args){ 
    new Gui(); 
} 

public void actionPerformed(ActionEvent e){ 
    button.setText("I've been clicked"); 
} 

} 
+7

Я думаю, что вам нужно, чтобы узнать некоторые больше о Java, прежде чем пытаться разработки GUI. – Jivings

+0

См. Также [Начальные темы] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod

ответ

4

Ваша проблема в том, что кнопка видна только внутри конструктора.

12
JButton button =new JButton 

Это создает локальную переменную.
Поле button по-прежнему null.

5

Ваше поле button, которое вы ссылаетесь в своем действии. Преобразованный метод никогда не инициализируется и, следовательно, является нулевым.

У вас есть эта кнопка JButton button =new JButton("click me!");, которую вы добавляете в свой основной метод, но ваше действиеПерформированное никогда не осознает этого.

Изменение линии читать

this.button =new JButton("click me!");

Смежные вопросы