gpt4 book ai didi

java - 如何创建一个类来执行 Java 中的所有 ActionListener 功能?

转载 作者:行者123 更新时间:2023-12-02 03:47:17 32 4
gpt4 key购买 nike

我有 2 个独立的类,用于构建 GUI 的不同侧面。

在这些类之一中,MainGUI 有一个名为 jb1 的 JButton。我一直在尝试为该按钮分配一个 ActionListener,以便在单击 JButton 时执行此操作。多个 JLabel 的内容已更新。

我尝试了下面的代码,

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import api.jaws.Jaws;


public class Controller implements ActionListener{

private MainGUI maingui;
private Sharkpanel sharkPanel;
private String sharkname;
private static Jaws jaws =new Jaws("XyP0D75oRCGrLE78","x47ka5jmOGaJ2zvw");
static ArrayList<String> sharknamelist=new ArrayList<String>();


public Controller(MainGUI maingui,Sharkpanel sharkPanel){

this.maingui = maingui;
this.sharkPanel = sharkPanel;

MainGUI.getSearchBtn().addActionListener(this);

sharknamelist.addAll(jaws.getSharkNames());

for (String s: sharknamelist){

sharkname += s+"\t";

}
}

public void actionPerformed(ActionEvent e){

sharkPanel.jlz.setText("Test");

//6 more Labels.


}

}

但是什么也没发生。我最初做了sharkPanel.jlz.setText(sharkname)

但是什么也没发生,我想这可能是因为我没有正确地将ArrayList转换为String。所以我通过输入“Test”对其进行了测试,但没有任何反应。

我尝试将 addController 方法添加到 2 个相应的 GUI 类中,但没有任何反应。就像这样,

public void addController(Controller controller){
control = controller;
jb1.addActionListener(control);

}

但仍然没有任何反应,我正在考虑使用 MouseListener,但我知道这是可以做到的,我只是不明白我做错了什么。

更新

这就是 getSearchBtn 所做的全部工作。

 private static JButton jb1;

jb1=new JButton(" Search ");

public static JButton getSearchBtn() {

return jb1;
}

最佳答案

在您的MainGUI 类中,

添加这个,

jb1.addActionListener(new Controller(.....)); 

按钮正确初始化/实例化后

完成上述更改,然后在jb1按钮之后就可以调用jb1..addActionListener(new Controller(.....));的actionPerformed-method

并删除,

MainGUI.getSearchBtn().addActionListener(this);  from Controller class.

关于java - 如何创建一个类来执行 Java 中的所有 ActionListener 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189370/

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