热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java–将GUI组件声明为字段是否有特定原因?ActionListener也应该匿名吗?

有几个关于如何制作简单GUI的例子.我的问题是什么被认为是这样做的正确方法,这样做的理由是什么?我一直在Eclipse下使用WindowBuilderPro,并检查正在生成的代码.

有几个关于如何制作简单GUI的例子.我的问题是什么被认为是这样做的正确方法,这样做的理由是什么?

我一直在Eclipse下使用Window Builder Pro,并检查正在生成的代码.显然,Window Builder更喜欢在视觉类的main方法中将组件(按钮等)声明为局部变量.但是,Window Builder中有一个按钮允许转换为字段.我遇到的大多数例子似乎都更喜欢现场声明.

此外,许多示例表明,最好创建一个扩展JFrame的单独类. Window Builder只是将JFrame声明为类中的一个字段.

我是否应该为许多事件或多个处理程序提供单个处理程序. Window Builder为每个事件声明匿名处理程序.

我只想清楚首选方法是什么.

解决方法:


Is there a specific reason to declare GUI components as fields?


我要说你只需要在你的程序中的某个地方引用那个组件就可以了.例如,对于大多数花园种类的JLabel来说通常不是这种情况,因此这些可能是在使用现场最佳声明和使用的.但是,许多JButton和JTextComponents需要在别处使用,这些可能最好被声明为私有类字段.


Also should ActionListener be anonymous?


只有这样才有意义.为了澄清,许多/最快速的一次性ActionListener应该是匿名的,但是较大的应该是私有内部类,而复杂的较大的应该是独立的独立类.我知道除了感觉和体验之外,没有简单的测试来区分这些.


I have been using Window Builder Pro under Eclipse, and examining the code that is being generated…


如果你是一个学徒Swing编码器,你可能想要把这个工具放在一边,直到你非常熟悉创建Swing GUI,因为如果你不熟悉它,GUI构建器可能会很难使用底层图书馆.否则,如果你是一个熟练工,当然如果你是一个专业的Swing程序员,那么请确保继续使用它.


Also many examples show that it is better to create a separate class that extends JFrame. Window Builder just declares JFrame as a field in the class.


我所知道的Swing领域的大多数专家建议通常最好不要扩展JFrame,而是在需要时创建和使用JFrame对象.这有几个原因,但第一是避免意外的副作用,例如在没有意识到的情况下覆盖关键方法.当我重写了一个JComponent并将其赋予int getX()和int getY()方法时,这种情况发生在我身上.该组件永远不会停留在它应该位于的位置!


Also should I have a single handler for many events or multiple handlers. Window Builder declares anonymous handlers for each event.


我认识的大多数人使用单个处理程序来处理单一类型的操作.例如,如果你正在创建一个计算器,那么创建一个由所有数字按钮共享的单个处理程序是有意义的,对于不同类型的操作可能有几个:一个基本数学运算的处理程序,如, – , *,/,一个用于内存操作,一个用于更复杂的操作.


推荐阅读
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
author-avatar
美猴qing_243
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有