我有一个用于多个按钮的ActionListener:

private class MyActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent event) {
            if (event.getSource().equals(button1)) {
                // do something
            } else if (event.getSource().equals(button2)) {
                // do something else
            }
        }
}


以下哪一项是将ActionListener添加到这些按钮的更好方法,为什么?

1 .:

button1.addActionListener(new MyActionListener());
button2.addActionListener(new MyActionListener());


2 .:

MyActionListener mal = new MyActionListener();

button1.addActionListener(mal);
button2.addActionListener(mal);


我选择了第二个选项,但不确定是否正确。

最佳答案

这个问题征求意见,并且可能会被关闭,因此,我作为社区Wiki进行回答,但是我认为最好的答案是“取决于情况”。

我要做的是,如果所有侦听器都完全相同,并且您没有将任何不同的东西传递给每个构造函数,那么只需让每个按钮共享同一侦听器即可。如果我需要将唯一的信息传递给侦听器,则可以使用单独的侦听器,但实际上任何一个侦听器都可以工作,并且两者都不会在程序操作或响应能力上造成明显的差异。

10-06 16:21