2012-06-04 109 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!");