0

2つのクラス(Main_MenuCancelListener)があります。適切なメソッドCancelListenerを使用するためにインスタンスを呼び出すと、が取得されます。actionPerformedNullPointerException

MainMenu.javaクラスで、次のようにボタンを宣言します。

JButton button = new JButton();
button.addActionListener(new CancelListener());

これが私のCancelListener()クラスです。

class CancelListener implements ActionListener {

    private Main_Menu menu;
    public JPanel mpan;

    public CancelListener() {
    }

    @Override
    public void actionPerformed(ActionEvent ae) {


        System.out.println("worked");
        try {

            CardLayout c1 = (CardLayout) (menu.MainPanel.getLayout());
            c1.show(menu.MainPanel, "AppPanel");
        } catch (Exception e) {

            System.out.println("Exception here " + e);
        }
    }
}

詳細情報:構造MainPanelJPanel持つです。CardLayoutキャンセルボタンで、特定のパネルを表示したい。ボタンビュークラスをボタンロジックから分離したいですか?別のクラスを使用しない場合に機能します。

4

1 に答える 1

3

menu変数を設定する必要があります。

CancelListenerクラスの場合:

private Main_Menu menu;

public CancelListener(Main_Menu menu) {
    this.menu = menu;
}

次に、構築するとき:

button.addActionListener(new CancelListener(this));
于 2011-07-28T01:20:19.450 に答える