Mad*_*gre 3 java swing jframe actionlistener windowbuilder
有几个关于如何制作简单GUI的例子.我的问题是什么被认为是这样做的正确方法,这样做的理由是什么?
我一直在Eclipse下使用Window Builder Pro,并检查正在生成的代码.显然,Window Builder更喜欢在视觉类的main方法中将组件(按钮等)声明为局部变量.但是,Window Builder中有一个按钮允许转换为字段.我遇到的大多数例子似乎都更喜欢现场声明.
此外,许多示例表明创建一个扩展的单独类更好JFrame
.Window Builder只是JFrame
在类中声明为一个字段.
我是否应该为许多事件或多个处理程序提供单个处理程序.Window Builder为每个事件声明匿名处理程序.
我只想清楚首选方法是什么.
是否有特定的理由将GUI组件声明为字段?
我要说你只需要在你的程序中的某个地方引用那个组件就可以了.例如,对于大多数花园种类的JLabel来说通常不是这种情况,因此这些可能是在使用现场最佳声明和使用的.但是,许多JButton和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为每个事件声明匿名处理程序.
我认识的大多数人使用单个处理程序来处理单一类型的操作.例如,如果你正在创建一个计算器,那么创建一个由所有数字按钮共享的单个处理程序是有意义的,对于不同类型的操作可能有几个:一个基本数学运算的处理程序,如+, - ,*,/,一个用于内存操作,一个用于更复杂的操作.
归档时间: |
|
查看次数: |
1315 次 |
最近记录: |