【问题标题】:resize synchronously jPanel components同步调整 jPanel 组件的大小
【发布时间】:2015-04-30 13:01:01
【问题描述】:

我有一个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 之间的空格。我正在使用jlabels(带有 EmptyBorder)。

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

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

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

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

【问题讨论】:

  • 提示:当问题与代码有关时,不要提及您的 IDE。

标签: java swing layout jpanel layout-manager


【解决方案1】:

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

您有两个选择:要么使用 JLabels 的最大和首选大小,要么只使用使组件尽可能大的布局——想到 GridLayout。

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

【讨论】:

  • 谢谢。你的描述是对的。我解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多