java - 如何将 JButtons 从列表连接到 actionListener

标签 java list actionlistener

我的列表中有动态数量的 JButton,需要帮助将它们连接到 actionListener

我首先根据名为 alt 的列表创建按钮:

for(int i =0;i<alt.size();i++) {
        JButton button = new JButton (alt.get(i));
        button.addActionListener(this); 
        buttonList.add(button);
    }

后来我添加了这样的按钮

private void gui(List<JButton> bList) {

    f = new JFrame("window");
    f.setLayout(new BorderLayout());    
    f.setVisible(true); 

    JPanel buttonPane = new JPanel();
    buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.PAGE_AXIS));

    for(int i =0;i<bList.size();i++) {
        buttonPane.add(bList.get(i));
    }
    f.add(buttonPane, BorderLayout.SOUTH);
 }

我知道按钮的数量永远不会超过 4 个。那么如何连接到 ActionListener 中的右侧按钮?没有在 gui 范围之外声明它们或单独命名它们?

    public void actionPerformed(ActionEvent e) {


        if(e.getSource() == ?) {  
        } else if (e.getSource() == ?) {
        } else if (e.getSource() == ?){
        }else if (e.getSource() == ?){
        }
}

最佳答案

如果您的按钮正在执行操作,则应该为每个按钮实现单独的操作监听器,否则在您的 e.getSource() == ? 中,? 应该是JButton实例,例如:e.getSource() == bList.get(0)

关于java - 如何将 JButtons 从列表连接到 actionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59896597/

相关文章:

java - 我可以在 Struts 2 中直接使用 jquery.js 吗?

java - Xamarin Android Bootstrap

java - 访问 GridLayout 中的按钮

java - 在 Model-View-Controller 中,为什么模型的改变不会触发 View 的改变?

JavaFX MediaPlayer 不播放 JAR 文件中的 MP4 视频

list - 创建二维列表矩阵

用于文本文件中值的 Python 拆分函数

Python - 嵌套列表到制表符分隔文件?

java - 在java上打印播放器结果

java - 我看到很多object.addActionListen(this),它是什么意思?