2012-06-04 312 views
-5

代码给出了空指针异常的错误..... wat能做什么?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

我认为你需要尝试GUI开发之前,了解一些更多关于Java。 – Jivings

+0

另请参阅[初始线程](http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)。 – trashgod

回答

4

您的问题是,该按钮只在构造函数中可见。

12
JButton button =new JButton 

这将创建一个本地变量。
button字段仍然是null

5

你的领域button,你在你的actionPerformed方法引用从未初始化,因此是无效。

你有这个按钮JButton button =new JButton("click me!");你添加在你的主要方法,但你的actionPerformed永远不知道这一点。

更改行改为

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