2010-02-12 78 views
0

我有一个JPanel,我想用含有3个垂直分量:摆动:适合简单情况的布局管理器?

  1. 一个JLabel
  2. 一个JTextField
  3. 一个JScrollPane

我希望所有的3个组成部分,填补了JPanel宽度。我想JLabelJTextField使用其正常高度和JScrollPane使用其余的。

BoxLayout差不多的作品,但它似乎像JTextFieldJScrollPane份额的“额外”的空间,当JPanel变大。

我该怎么办?

回答

2

创建一个BorderLayout。将JScrollPane放在其中心。

用BoxLayout创建一个JPanel。垂直放置JLabel和JTextField。将该JPanel放入BorderLayout的北侧。

+0

万岁为了简单!谢谢! – 2010-02-12 17:17:49

1

GridBagLayout非常方便。你可以控制任何你需要的东西,而且你只能控制你需要的东西。您可能只会对垂直参数感兴趣。

1

你也可以使用DesignGridLayout如下:

DesignGridLayout layout = new DesignGridLayout(thePanel); 
layout.row().center().fill().add(theLabel); 
layout.row().center().fill().add(theTextField); 
layout.row().center().fill().add(theScrollPane); 

这应该正是表现为你描述。

每次调用row()都会在面板中创建一个新行。

调用fill()确保每个组件使用整个可用宽度。

使用DesignGridLayout这里的一些优点是:

  • 只有一个布局管理整个 面板
  • 自动边界和跨行间距
+0

谢谢......当我愿意拉图书馆时,我使用javabuilders + MiGlayout,这个问题实际上是关于内置布局管理器的,虽然我承认我没有说明。 – 2010-02-18 14:27:10