我有一个JPanel
,我想用含有3个垂直分量:摆动:适合简单情况的布局管理器?
- 一个
JLabel
- 一个
JTextField
- 一个
JScrollPane
我希望所有的3个组成部分,填补了JPanel
宽度。我想JLabel
和JTextField
使用其正常高度和JScrollPane
使用其余的。
BoxLayout
差不多的作品,但它似乎像JTextField
和JScrollPane
份额的“额外”的空间,当JPanel
变大。
我该怎么办?
我有一个JPanel
,我想用含有3个垂直分量:摆动:适合简单情况的布局管理器?
JLabel
JTextField
JScrollPane
我希望所有的3个组成部分,填补了JPanel
宽度。我想JLabel
和JTextField
使用其正常高度和JScrollPane
使用其余的。
BoxLayout
差不多的作品,但它似乎像JTextField
和JScrollPane
份额的“额外”的空间,当JPanel
变大。
我该怎么办?
创建一个BorderLayout。将JScrollPane放在其中心。
用BoxLayout创建一个JPanel。垂直放置JLabel和JTextField。将该JPanel放入BorderLayout的北侧。
GridBagLayout非常方便。你可以控制任何你需要的东西,而且你只能控制你需要的东西。您可能只会对垂直参数感兴趣。
你也可以使用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这里的一些优点是:
谢谢......当我愿意拉图书馆时,我使用javabuilders + MiGlayout,这个问题实际上是关于内置布局管理器的,虽然我承认我没有说明。 – 2010-02-18 14:27:10
万岁为了简单!谢谢! – 2010-02-12 17:17:49