gpt4 book ai didi

java - 将 JButton actionListener 传递给另一个 Java 类时出现空指针异常

转载 作者:行者123 更新时间:2023-12-02 00:39:09 25 4
gpt4 key购买 nike

我有两个类(Main_MenuCancelListener)。当我调用 CancelListener 的实例以使用正确的 actionPerformed 方法时,我收到一个 NullPointerException

在我的 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);
}
}
}

更多信息:MainPanel 是一个具有 CardLayout 结构的 JPanel。在取消按钮上,我想显示一个特定的面板。我想将按钮 View 类与按钮逻辑分开?当我不使用单独的类时它可以工作。

最佳答案

您需要设置menu变量:

在 CancelListener 类中:

private Main_Menu menu;

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

然后,构建时:

button.addActionListener(new CancelListener(this));

关于java - 将 JButton actionListener 传递给另一个 Java 类时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com