Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JAVA中处理事件的正确方法是什么?_Java_Event Handling - Fatal编程技术网

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

在JAVA中处理事件的正确方法是什么?,java,event-handling,Java,Event Handling,程序员用JAVA处理事件的正确方法是什么?问题是,可以这样在Eclipse的设计视图中双击按钮自动生成代码吗 btn_add_game.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { MY CODE TO EXECUTE; } }); 或者有必要编写实现action listener的类,然后编写代码

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

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

MY CODE TO EXECUTE;
            }
        });
或者有必要编写实现action listener的类,然后编写代码


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

您所写的非常好。这是一个匿名内部类,我不认为有这些类在身边是一种代码味道

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

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


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

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

但是,我通常更喜欢使用一个单独的类来扩展我需要的侦听器接口,而不是使用一堆注释性的内部类。它生成了更干净的代码(在我看来),并使以后的维护或添加新功能变得更容易。但请记住,这只是我的观点(亚当给出了一个完全正确的答案,与我的观点相反)


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

这取决于您的需要

  • 如果有一个动作不能直接使用,正如你在提问时所展示的那样
  • 如果存在多个操作,则应执行
    ActionListener
    以进行维护并减少样板代码

  • +1在某种程度上,我相信他的第一个问题也是一个宗教问题,特别是在IDE现在可用的情况下。我个人建议在大多数情况下为听众使用单独的课堂,但这只是个人观点。“在我的工作中,我已经有过几次这样的争论了。”阿达马罗德说得不错。向我的法裔加拿大传统致敬:P感谢您的关注;)