2012-08-02 136 views
3

我使用2行6列的网格布局。第一列是标签,第二列是组合。我的问题是Java布局管理器

根据标签大小组合框的大小也增加。 我想要一个稳定的组合大小?我应该使用哪种布局? 我要像

* LABEL1设计:COMBO1标签2:combo2 LABEL3:combo3 label4:text1的label5:文本2 label6:文字3 *

+0

combo3所有其他完后,放置在新行 – Siddhu 2012-08-02 08:12:01

+1

简单(尽管可能不是你想听到的那个:-)答案是:了解哪个LayoutManager做什么,然后选择哪一个满足你的要求。 Swing标签中引用的教程有关于布局的章节。 – kleopatra 2012-08-02 09:16:55

回答

4
  1. GridLayout您可以使用JComboBox#setPrototypeDisplayValue,那么你可以为JComboBox在屏幕上非常confortly设置初始大小

  2. 您可以使用SpringLayoutGridBagLayout

  3. 使用今天的定制LayoutManagers为例如MigLayout

  4. 有关选择正确的01的通知,一切都取决于如果内容应该或不应该是可调整大小与容器

4

遍历所有的标签和设定的最大尺寸的所有其中。

Label 1    |________________| 
Label Label 2  |________________| 
Label Label Label 3 |________________| 
Label 1    |________________| 
+1

“set .. size”是什么意思?通常情况下,代码没有什么作用,因为它是LayoutManager的任务......正如你所知道的那样;-) – kleopatra 2012-08-02 09:18:56

2

GridLayout所有瓷砖都有相同的大小。

您应该考虑使用GridBagLayout。您还需要为每个GUI元素使用GridBagConstraints来指定其位置。

4

如果您必须亲手编写布局代码并且使用第三方库没有任何问题,您可以试试Miglayout

您也可以使用图形编辑器来布置您的面板。有两种免费的工具可以做一份体面的工作(我知道):NetBeansEclipse WindowBuilder

3

你可以使用一个GridBagLayout的,设置GridBagConstrints.fill到水平的组合框