我正在创建一个基本上有很多按钮的摇摆程序,我在想,不是将侦听器单独添加到每个按钮,如果我可以将侦听器添加到其中JPanel
,并使用.getSource()
函数读取事件,事情将是容易多了?是否可以?
问问题
2286 次
3 回答
5
将侦听器添加到组件并不意味着您也将该侦听器添加到内部组件。相反,考虑使用按钮组(例如按钮数组)并通过一次迭代将侦听器添加到所有按钮。
for(JButton button : buttonsArray)
button.addActionListener(yourActionListener);
于 2012-11-26T12:12:18.643 回答
2
我正在创建一个基本上有很多按钮的摇摆程序,我在想,如果我可以将侦听器添加到 JPanel,而不是单独将侦听器添加到每个按钮,并使用 .getSource() 函数读取事件,事情会容易得多吗?是否可以?
无法添加ActionListener
,只能MouseListener
这样做,但不是正确的方法JButton
取决于您的代码,您必须将 ActionListener 添加到每个 JButtons 并确定哪一个被按下
put/getClientProperty
ActionCommand
以编程方式在数组中循环
JButtons
并比较事件和JButton
于 2012-11-26T12:13:25.987 回答
1
不,你不能,看看文档
如果您的所有按钮都具有相同的侦听器行为,请将它们添加到ArrayList<JButton>
并在循环中添加相同的实例ActionListener
于 2012-11-26T12:11:20.687 回答