同步调整 jPanel 组件的大小

resize synchronously jPanel components

我有一个JFrame如下:

-------------------------|
|JFrame                  |
|                        |
|  |---------------------|
|  |JScrollPane          |
|  | |jXTaskPaneContainer|
|  | |jXTaskPane         |
|  | | |-----------------|
|  | | |jPanel1          |
|  | | |-----------------|
-------------------------|

下面可以看到jPanel1的布局:

|  label1   | (without title) | label2   | label3    | <--labelPanel+BoxLayout
--------------------------------------------------------
| comboBox1 |   comboBox2     |textField1|textField2 | <--controlPanel+BoxLayout

对于 jXTaskPaneContainerjXTaskPane 我正在使用 VerticalLayout

我想要实现的目标是获得一个可调整大小的 JFrame 组件。

labelPanel 个组件外,一切正常。

作为 jLabels 之间的 space。我正在使用 jlabels(带有 EmptyBorder)。

当我调整 JFrame 大小时 jPanel1 组件不同步调整大小时如下:

|  label1   |   (without title) | label2   | label3    |
--------------------------------------------------------
|     comboBox1    |     comboBox2         |   textField1      | textField2|

我想看到的结果:label1 comboBox1 的标题,label2 定义了 textField1,...我无法同步调整它们的大小。

如果您有什么建议,请与我分享。

BoxLayout 将为其组件提供所需的空间。 JLabel 会尽量保持小,而 JComboBoxes 会尽量分散。

您有两个选择:使用 JLabel 的最大和首选大小,或者只使用使组件尽可能大的布局 - 想到 GridLayout。

事实上,您所描述的听起来像是 jPanel1 上的 GridLayout,不需要 labelPanel 或 controlPanel。