- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有几个关于如何制作简单 GUI 的示例。我的问题是什么被认为是这样做的正确方法,无论哪种方式这样做的理由是什么?
我一直在 Eclipse 下使用 Window Builder Pro,并检查正在生成的代码。显然,Window Builder 更喜欢将组件(按钮等)声明为可视类的主要方法中的局部变量。但是,Window Builder 中有一个按钮允许转换为字段。我遇到的大多数示例似乎更喜欢字段声明。
还有许多示例表明,最好创建一个单独的类来扩展 JFrame
。 Window Builder 只是将 JFrame
声明为类中的一个字段。
我还应该为许多事件或多个处理程序设置一个单独的处理程序。 Window Builder 为每个事件声明匿名处理程序。
我只是想弄清楚首选方法是什么。
最佳答案
Is there a specific reason to declare GUI components as fields?
我想说的是,只有当您需要在程序中的某处引用该组件时,您才需要这样做。例如,对于大多数普通的 JLabel,情况通常不是这样,因此最好在使用站点声明和使用这些 JLabel。然而,许多 JButton 和 JTextComponent 将需要在别处使用,并且最好将它们声明为私有(private)类字段。
Also should ActionListener be anonymous?
只有在有意义的情况下才这样做。澄清一下,许多/最快速的一次性 ActionListeners 应该是匿名的,但较大的应该是私有(private)内部类,而复杂的较大的应该是单独的独立类。除了感觉和经验之外,我不知道有什么简单的测试可以区分它们。
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 - 将 GUI 组件声明为字段是否有特定原因? ActionListener 也应该是匿名的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772309/
我有一个 if 语句,如下所示 if (not(fullpath.lower().endswith(".pdf")) or not (fullpath.lower().endswith(tup
然而,在 PHP 中,可以: only appears if $foo is true. only appears if $foo is false. 在 Javascript 中,能否在一个脚
XML有很多好处。它既是机器可读的,也是人类可读的,它具有标准化的格式,并且用途广泛。 它也有一些缺点。它是冗长的,不是传输大量数据的非常有效的方法。 XML最有用的方面之一是模式语言。使用模式,您可
由于长期使用 SQL2000,我并没有真正深入了解公用表表达式。 我给出的答案here (#4025380)和 here (#4018793)违背了潮流,因为他们没有使用 CTE。 我很欣赏它们对于递
我有一个应用程序: void deleteObj(id){ MyObj obj = getObjById(id); if (obj == null) { throw n
我的代码如下。可能我以类似的方式多次使用它,即简单地说,我正在以这种方式管理 session 和事务: List users= null; try{ sess
在开发J2EE Web应用程序时,我通常会按以下方式组织我的包结构 com.jameselsey.. 控制器-控制器/操作转到此处 服务-事务服务类,由控制器调用 域-应用程序使用的我的域类/对象 D
这更多是出于好奇而不是任何重要问题,但我只是想知道 memmove 中的以下片段文档: Copying takes place as if an intermediate buffer were us
路径压缩涉及将根指定为路径上每个节点的新父节点——这可能会降低根的等级,并可能降低路径上所有节点的等级。有办法解决这个问题吗?有必要处理这个吗?或者,也许可以将等级视为树高的上限而不是确切的高度? 谢
我有两个类,A 和 B。A 是 B 的父类,我有一个函数接收指向 A 类型类的指针,检查它是否也是 B 类型,如果是将调用另一个函数,该函数接受一个指向类型 B 的类的指针。当函数调用另一个函数时,我
有没有办法让 valgrind 使用多个处理器? 我正在使用 valgrind 的 callgrind 进行一些瓶颈分析,并注意到我的应用程序中的资源使用行为与在 valgrind/callgrind
假设我们要使用 ReaderT [(a,b)]超过 Maybe monad,然后我们想在列表中进行查找。 现在,一个简单且不常见的方法是: 第一种可能性 find a = ReaderT (looku
我的代码似乎有问题。我需要说的是: if ( $('html').attr('lang').val() == 'fr-FR' ) { // do this } else { // do
根据this文章(2018 年 4 月)AKS 在可用性集中运行时能够跨故障域智能放置 Pod,但尚不考虑更新域。很快就会使用更新域将 Pod 放入 AKS 中吗? 最佳答案 当您设置集群时,它已经自
course | section | type comart2 : bsit201 : lec comart2 :
我正在开发自己的 SDK,而这又依赖于某些第 3 方 SDK。例如 - OkHttp。 我应该将 OkHttp 添加到我的 build.gradle 中,还是让我的 SDK 用户包含它?在这种情况下,
随着 Rust 越来越充实,我对它的兴趣开始激起。我喜欢它支持代数数据类型,尤其是那些匹配的事实,但是对其他功能习语有什么想法吗? 例如标准库中是否有标准过滤器/映射/归约函数的集合,更重要的是,您能
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我一直在研究 PHP 中的对象。我见过的所有示例甚至在它们自己的对象上都使用了对象构造函数。 PHP 会强制您这样做吗?如果是,为什么? 例如: firstname = $firstname;
...比关联数组? 关联数组会占用更多内存吗? $arr = array(1, 1, 1); $arr[10] = 1; $arr[] = 1; // <- index is 11; does the
我是一名优秀的程序员,十分优秀!