阅读评论,我想我可以回答这个问题。正确的答案需要一本书。
将您的GUI分解为
JPanel
描述GUI所需的尽可能多的nested 。嵌套一个简单的JPanel
一个使用BorderLayout
是优选的复杂JPanel
,它使用一个GridBagLayout
。明确地说,我并不是在批评GridBagLayout
。在创建表单时很有用。但这不是唯一的Swing布局管理器。将每个嵌套
JPanel
到自己的类中。使用Swing组件时,请使用合成。仅当您的类将覆盖
JComponent
方法之一时,才使用继承。每一个
JPanel
都有自己的JButton
,JLabel
等部分组成。 即使GUI用户认为它们是相同的按钮,也JBUtton
为JPanel
A 定义A,JButton
为JPanel
B 定义B。您可以通过创建包含标签和按钮的文本的GUI模型来最大程度地减少重复。你必须通过编写共同消除的动作代码(按下按钮当这样执行的代码)重复ActionListener
s表示JButton
一个和JButton
B可执行。Swing应用程序 必须 以调用开始
SwingUtilities.invokelater()
。这样可以确保在事件调度线程(EDT)上定义和使用Swing组件。只有 一个
Jframe
是在Swing应用程序中使用。每个JPanel 必须 定义一个Swing布局管理器。
某些组件(例如
JList
和)JTable
放在时会更好地工作JScrollPane
。
我确定我忘记了一些事情,但这应该是一个好的开始。



