在JAVA中处理事件的正确方法是什么?

时间:2013-11-27 16:48:57

标签: java event-handling

这是正确的方式,程序员用来处理JAVA中的事件?问题是,是否可以在Eclipse的设计视图中自动生成代码双击按钮

btn_add_game.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

MY CODE TO EXECUTE;
            }
        });

或者编写实现动作侦听器的类然后编写代码是必要的吗?

另外,在同一主题上,在eclipse中使用Designer视图是否正常或者硬核程序员只使用代码?

3 个答案:

答案 0 :(得分:1)

你所写的内容非常好。这是一个匿名的内部阶级,我不认为拥有这些是代码气味。

想象一下,如果您已将所有侦听器实现为单独的类。你最终会得到大量的类,这些类本质上是匿名函数(比如其他语言的labdas)。

所以是,继续并使用生成的侦听器。

你的另一个问题是宗教问题。一半的程序员会说不使用它,另一半会告诉你使用它。这一切都归结为偏好。如果相关设计师生成质量代码,则使用它,否则不使用。

答案 1 :(得分:1)

这一切都取决于您公司的政策,以及您希望将代码分成逻辑单元的程度。您在问题中提供的代码是可以的;它将允许您处理事件。

但是,我通常更喜欢有一个单独的类,它扩展了我需要的监听器接口,而不是拥有一堆匿名内部类。它生成更清晰的代码(在我看来),并使以后更容易维护或添加新功能。但请记住,这只是我的意见(亚当发布了一个完全有效的答案,这违背了我的意见)。

就编码GUI而言,我从不使用GUI构建器,我发现我无法控制GUI组件,布局和行为。我总是手工编写代码,使用适当的LayoutManager或管理器组合。但是,如果您的用户界面足够简单,并且您不想花时间学习如何在Java中处理GUI,那么使用构建器是一个非常有效的选项。

答案 2 :(得分:1)

这取决于你的需要。

  1. 如果有一个动作而不是直接使用,正如您在问题中所示。
  2. 如果有多个操作,则应执行ActionListener以进行维护并减少样板代码。