在java中,可以在构造对象后将引用更改为侦听器吗? 例如,当这个类的对象被实例化时,我可以使用它的setter来更改侦听器吗? 如果我不能,我该怎么做,我的意思是在需要时改变听众?何时注册侦听器?
public class ListenerTest extends JFrame {
ActionListener listener;
public ListenerTest() {
JPanel jPanel = new JPanel();
JButton jButton = new JButton("Activate!");
jButton.addActionListener(listener);
jPanel.add(jButton);
add(jPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Demo Drawing");
setLocationRelativeTo(null);
pack();
setVisible(true);
}
public ActionListener getListener() {
return listener;
}
public void setListener(ActionListener listener) {
this.listener = listener;
}
public static void main(String[] args) {
ListenerTest frame = new ListenerTest();
}
}
+1提及操作。我是“一些”的人之一,他强烈地感觉到使用Actions是一种远远更简洁的方式来配置按钮,菜单等。如果您想禁用按钮,或者在按钮和按钮中共享相同的动作菜单,你想要一个行动。 – user949300
@ user949300:谢谢,你当然是对的。我想你会和kleopatra相处的很好。 –