ActionListeners:对于 GUI 中的每个按钮,一个单独的侦听器还是一个用于所有按钮的侦听器?
ActionListeners: for each button in GUI a seperate listener or one listener for all buttons?
所以我想知道什么更好看 solution/what 在决定制作多个侦听器(1 个按钮的 1 个侦听器)或仅 1 个 ActionListener
用于我的 GUI 中的所有按钮(大约 10 个按钮),并通过 actionevent.getSource() == buttonname
.
获取有关按下哪个按钮的信息
您认为哪种风格比较好?为几个 ActionListeners
创建这么多 类 有什么缺点吗?还是根本不重要?
顺便说一句,在我的代码中,我试图坚持模型-视图-控制器组织。
我更喜欢使用不同的 ActionListener 类,但根据我的经验,按功能职责对它们进行分组是一个很好的做法。
我还建议您依赖 ActionEvent#getActionCommand()
而不是 ActionEvent#getSource()
,因为您可以处理来自不同 UI 组件的等效操作。
JButton button = new JButton("Button");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//do your work here.
}
});
这是每个按钮的方法。
具有多个 if else 或 switch 语句的长 ActionListener
接口对象既笨拙又难以维护。
此外,在每次按下按钮时,程序都必须进行多次匹配才能知道按下了哪个按钮。那是很贵的。
所以,一个 Button
---> 一个 ActionListener
是更好的方法。
我更喜欢使用 lambda,每个按钮一个,例如:
JButton button = new JButton("Button");
button.addActionListener(e -> //do your work here);
所以我想知道什么更好看 solution/what 在决定制作多个侦听器(1 个按钮的 1 个侦听器)或仅 1 个 ActionListener
用于我的 GUI 中的所有按钮(大约 10 个按钮),并通过 actionevent.getSource() == buttonname
.
您认为哪种风格比较好?为几个 ActionListeners
创建这么多 类 有什么缺点吗?还是根本不重要?
顺便说一句,在我的代码中,我试图坚持模型-视图-控制器组织。
我更喜欢使用不同的 ActionListener 类,但根据我的经验,按功能职责对它们进行分组是一个很好的做法。
我还建议您依赖 ActionEvent#getActionCommand()
而不是 ActionEvent#getSource()
,因为您可以处理来自不同 UI 组件的等效操作。
JButton button = new JButton("Button");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//do your work here.
}
});
这是每个按钮的方法。
具有多个 if else 或 switch 语句的长 ActionListener
接口对象既笨拙又难以维护。
此外,在每次按下按钮时,程序都必须进行多次匹配才能知道按下了哪个按钮。那是很贵的。
所以,一个 Button
---> 一个 ActionListener
是更好的方法。
我更喜欢使用 lambda,每个按钮一个,例如:
JButton button = new JButton("Button");
button.addActionListener(e -> //do your work here);