繁体   English   中英

我可以将ActionListener添加到JPanel

[英]Can I add an ActionListener to a JPanel

我正在创建一个基本上有很多按钮的swing程序,我想的是,不是将监听器单独添加到每个按钮,如果我可以将监听器添加到JPanel ,并使用.getSource()函数读取事件,事情会变得容易多少? 可能吗?

向组件添加侦听器并不意味着您还要将侦听器添加到内部组件。 相反,考虑使用按钮组(例如按钮数组)并通过一次迭代将监听器添加到所有按钮。

for(JButton button : buttonsArray)
    button.addActionListener(yourActionListener);

我正在创建一个基本上有很多按钮的swing程序,我想的是,不是将监听器单独添加到每个按钮,如果我可以将监听器添加到JPanel,并使用.getSource()函数读取事件,事情会变得容易多少? 可能吗?

不可能添加ActionListener ,只有MouseListener可以这样做,但JButton方法不正确

取决于你的代码,你必须将ActionListener添加到每个JButton并确定按下哪个

  • put/getClientProperty

  • ActionCommand

  • 以编程方式循环灌注JButtons数组并比较事件和JButton

不,你不能,看看文档

如果所有按钮都具有相同的侦听器行为,请将它们添加到ArrayList<JButton>并在循环中添加相同的ActionListener实例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM