在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相處的很好。 –