编程语言
首页 > 编程语言> > java – JScrollPane中组件的面向列的布局

java – JScrollPane中组件的面向列的布局

作者:互联网

我正在研究我的第一个Swing应用程序,我遇到了一个关于我为用户创建的对话窗口的布局问题,以便在某些字段中输入值.因为显示的字段数量因用户选择而异,所以我在对话框中使用JScrollPane,将其视口设置为我添加字段组件的面板.

对于要显示的每个字段,我创建并添加三个组件:

>“字段名称”标签
> Field组件(通常是JTextField,但它也可以是JComboBox或JDateChooser控件)
>“字段类型”标签

namelabel:| ____ | (串)

name2label:| __ | (数)

所有这三个组件都可以有不同的长度,所以我的挑战是找到一种整理这些组件的整洁方法.我一直在做的是将主窗格的布局管理器设置为使用y轴的BoxLayout(即它垂直布置组件).然后,我为每个字段创建一个窗格,为该窗格设置布局管理器,然后将所有三个字段组件添加到该窗格.我已经为各个窗格尝试了FlowLayout和BoxLayout,并且我遇到了这两个布局管理器的问题.

我将FlowLayout管理器设置为使用左对齐,但由于组件的长度不同,这导致了一个弯曲的列布局.我将BoxLayout设置为使用X轴(即水平放置),但随后组件的居中导致每个组件之间的间距很大.在使用单个窗格之前​​,我尝试使用GridLayout,但我从来没有能够遵守我的三列要求,导致字段跨行分割.我还简要介绍了一篇关于GroupLayout经理的文章,但它似乎令人生畏:)

有没有人对如何在JScrollPane中以简洁紧凑的方式布置不同长度的三个不同组件的行数有任何建议?提前致谢…

谢尔顿

解决方法:

这是一个常见问题:MiGLayout是一个不错的选择.或者,BoxLayout表示here,Group Layout表示here.

标签:java,swing,jscrollpane,layout-manager
来源: https://codeday.me/bug/20191009/1877258.html