将 GUI 组件声明为字段是否有特定的原因?
我想说的是,如果您需要在程序中的某处引用该组件,您只需要这样做。例如,大多数普通 JLabel 通常不是这种情况,因此这些可能最好在使用现场声明和使用。然而,许多 JButtons 和 JTextComponents 将需要在其他地方使用,并且最好将它们声明为私有类字段。
ActionListener 也应该是匿名的吗?
只有在有意义的情况下这样做。澄清一下,许多/最快速的一次性 ActionListener 应该是匿名的,但较大的应该是私有内部类,而复杂的较大的应该是单独的独立类。除了感觉和经验,我知道没有简单的测试可以区分这些。
我一直在 Eclipse 下使用 Window Builder Pro,并检查正在生成的代码......
如果您是一名学徒 Swing 编码器,您可能希望将这个工具放在一边,直到您非常熟悉创建 Swing GUI,因为如果您不太熟悉 GUI 构建器,则使用起来可能会很棘手。底层库。否则,如果您是熟练工,当然如果您是专家 Swing 程序员,那么请继续使用它。
还有许多例子表明,最好创建一个扩展 JFrame 的单独类。Window Builder 只是将 JFrame 声明为类中的一个字段。
我认识的大多数 Swing 领域的专家建议,通常最好不要扩展 JFrame,而是在需要时创建和使用 JFrame 对象。这有几个原因,但第一个是避免意外的副作用,例如在没有意识到的情况下覆盖关键方法。当我重写 JComponent 并提供它int getX()
和int getY()
方法时,这发生在我身上。该组件永远不会停留在它应该位于的位置!
我还应该为许多事件或多个处理程序提供一个处理程序。Window Builder 为每个事件声明匿名处理程序。
我认识的大多数人都使用单个处理程序来处理单一类型的操作。例如,如果您正在创建一个计算器,那么创建一个供所有数字按钮共享的处理程序是有意义的,并且可能为不同类型的操作创建多个处理程序:一个处理程序用于基本的数学运算,例如 +、- , *, /, 一个用于内存操作,一个用于更复杂的操作。