-5

コードはnullpointer例外のエラーを出します.....どうすればいいですか?

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

}
4

3 に答える 3

12
JButton button =new JButton

これにより、ローカル変数が作成されます。フィールドはまだです
buttonnull

于 2012-06-04T19:45:28.250 に答える
5

buttonactionPerformed メソッドで参照するフィールドは初期化されないため、null になります。

メインメソッドに追加するこのボタンJButton button =new JButton("click me!");がありますが、actionPerformed はそれを認識しません。

行を変更して読む

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

于 2012-06-04T19:48:10.430 に答える
4

あなたの問題は、ボタンがコンストラクター内でのみ表示されることです。

于 2012-06-04T19:45:13.520 に答える