Java GUI编程

时间:2012-06-04 19:43:43

标签: java swing nullpointerexception scope

代码给出了空指针异常的错误.....怎么办?

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");
}

}

3 个答案:

答案 0 :(得分:12)

JButton button =new JButton

这会创建一个本地变量 button字段仍为null

答案 1 :(得分:5)

您在actionPerformed方法中引用的字段button永远不会被初始化,因此为空。

您在主方法中添加了此按钮JButton button =new JButton("click me!");,但您的actionPerformed从未意识到这一点。

将行更改为

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

答案 2 :(得分:4)

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