所以我想知道什么是更好看的解决方案/有什么区别以及在决定制作多个听众(1个听众为1个按钮)或仅为1个ActionListener
时需要考虑的事项我的GUI中的所有按钮(大约10个按钮),并通过actionevent.getSource() == buttonname
获取有关按下哪个按钮的信息。
您认为哪种风格更好?为多个ActionListeners
创建如此多的类是否有缺点?或者根本不重要?
顺便说一句,在我的代码中我试图坚持模型 - 视图 - 控制器组织。
答案 0 :(得分:1)
我更喜欢拥有不同的ActionListener类,但根据我的经验将它们按功能责任分组是一种很好的做法。
我还建议您依靠ActionEvent#getActionCommand()
而不是ActionEvent#getSource()
,因为您可以处理来自不同UI组件的等效操作。
答案 1 :(得分:0)
JButton button = new JButton("Button");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//do your work here.
}
});
这是每个按钮的方法。
具有多个if else或switch语句的长ActionListener
接口对象既笨拙又难以维护。
此外,在按下每个按钮时,程序必须经过多次匹配才能知道按下了什么按钮。这是非常昂贵的。
所以,一个Button
--->一个ActionListener
是更好的方式。
答案 2 :(得分:0)
我更喜欢使用lambdas,每个按钮一个,例如:
JButton button = new JButton("Button");
button.addActionListener(e -> //do your work here);