【发布时间】:2015-11-13 16:37:04
【问题描述】:
我有一个框架,它必须听按钮按下任何选定的元素。是否可以为此框架创建一个全局监听器,或者我必须为我拥有的每个元素编写监听器?
【问题讨论】:
-
你想用按钮做什么?我这样听是没有意义的。
-
你有创建按钮的引用吗?
我有一个框架,它必须听按钮按下任何选定的元素。是否可以为此框架创建一个全局监听器,或者我必须为我拥有的每个元素编写监听器?
【问题讨论】:
编写一个 MouseListener/MouseAdapter 并与您想要响应的所有元素共享同一个实例。
这个其他问题会给你一个线索: Java MouseListener
【讨论】:
我不确定这是你想要的。 你可以让这些按钮使用相同的动作监听器,
//set up some buttons...
bt1 = new JButton("BUTTON1");
bt2 = new JButton("BUTTON2");
//use the same actionListener
bt1.addActionListener(someActionListener);
bt2.addActionListener(someActionListener);
然后在 actionPerformed 方法中,您可以检查按下了哪个按钮。
public void actionPerformed(ActionEvent e){
JButton pressedButton = (JButton)e.getSource();
//check which button was pressed
if(pressedButton ==bt1)
System.out.println("Button 1 do something");
else if(pressedButton ==bt2)
System.out.println("Button 2 do something");
}
【讨论】: