sta*_*les 0 java layout user-interface
我正在尝试为独立应用程序创建一个清晰的Java UI布局.我知道JSwing不是最好的UI,但它就是我现在所拥有的.
我的UI目前看起来像:

我希望文本排成一行,按钮排列,向上,以及所有这些按钮的提交和状态,彼此堆叠或平行.
我的布局目前是这样的:
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
layout.setHorizontalGroup(layout.createSequentialGroup()
.addComponent(lbl_inputFile)
.addComponent(txt_inputFile)
.addComponent(btn_inputFile)
.addGroup(layout.createSequentialGroup()
.addComponent(lbl_searchTermFile)
.addComponent(txt_searchTermFile)
.addComponent(btn_searchTermFile))
.addGroup(layout.createSequentialGroup()
.addComponent(lbl_outputFile)
.addComponent(txt_outputFile)
.addComponent(btn_outputFile))
.addGroup(layout.createSequentialGroup()
.addComponent(btn_sumbit)
.addComponent(lbl_status))
);
layout.linkSize(SwingConstants.HORIZONTAL, btn_inputFile, btn_outputFile, btn_searchTermFile);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(lbl_inputFile)
.addComponent(txt_inputFile)
.addComponent(btn_inputFile))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(lbl_searchTermFile)
.addComponent(txt_searchTermFile)
.addComponent(btn_searchTermFile))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(lbl_outputFile)
.addComponent(txt_outputFile)
.addComponent(btn_outputFile))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(btn_sumbit)
.addComponent(lbl_status))
);
Run Code Online (Sandbox Code Playgroud)
任何想法如何实现我想要的?
您可以使用http://www.miglayout.com/中的 MigLayout布局管理器. 您可以从此站点下载用于Swing的jar文件miglayout-4.0-swing.jar,使其在您的项目类路径中可用.为了让您了解布局管理器的工作原理,下面是快速入门的源代码
JPanel panel = new JPanel(new MigLayout());
panel.add(firstNameLabel);
panel.add(firstNameTextField);
panel.add(lastNameLabel,"gap unrelated");
panel.add(lastNameTextField,"wrap");
panel.add(addressLabel);
panel.add(addressTextField,"span, grow");
Run Code Online (Sandbox Code Playgroud)
以上代码生成以下面板
如果您使用的是eclipse,那么您可以使用Google的WindowBuilder插件(http://www.eclipse.org/windowbuilder/download.php).它的GUI表单设计器也支持Swing,特别是它包含对MigLayout布局管理器的内置支持.以下是在Eclipse中打开WindowBuilder的屏幕截图

| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |