swing:适合简单情况的布局管理器?
我有一个swing:适合简单情况的布局管理器?,swing,layout,Swing,Layout,我有一个JPanel,我想用它来包含3个垂直组件: aJLabel aJTextField aJScrollPane 我希望所有3个组件都填充JPanel的宽度。我希望JLabel和JTextField使用它们的正常高度,JScrollPane使用其余高度 BoxLayout几乎可以正常工作,除了JTextField和JScrollPane在JPanel变大时共享“额外”空间 我能做什么?非常方便。你可以控制你需要的任何东西,你只能控制你需要的东西。您可能只对垂直参数感兴趣。非常方便。你可以控制
JPanel
,我想用它来包含3个垂直组件:
JLabel
JTextField
JScrollPane
JPanel
的宽度。我希望JLabel
和JTextField
使用它们的正常高度,JScrollPane
使用其余高度
BoxLayout
几乎可以正常工作,除了JTextField
和JScrollPane
在JPanel
变大时共享“额外”空间
我能做什么?非常方便。你可以控制你需要的任何东西,你只能控制你需要的东西。您可能只对垂直参数感兴趣。非常方便。你可以控制你需要的任何东西,你只能控制你需要的东西。您可能只对垂直参数感兴趣。创建边界布局。将JScrollPane放在其中心
创建具有BoxLayout的JPanel。将JLabel和JTextField垂直放置在其中。将该JPanel放入BorderLayout的北侧。创建一个BorderLayout。将JScrollPane放在其中心 创建具有BoxLayout的JPanel。将JLabel和JTextField垂直放置在其中。将该JPanel放入BorderLayout的北侧。您也可以按如下方式使用:
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的几个优点是:
- 整个公司只有一名布局经理 面板
- 自动边框和行间距
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的几个优点是:
- 整个公司只有一名布局经理 面板
- 自动边框和行间距