Java JScrollPane中组件的面向列布局
我正在开发我的第一个Swing应用程序,我遇到了一个布局问题,这个问题与我为用户创建的对话框窗口有关,该窗口用于在某些字段中输入值。由于显示的字段数量因用户选择而异,因此我在对话框中使用JScrollPane,将其视口设置为添加字段组件的面板 对于要显示的每个字段,我创建并添加三个组件:Java JScrollPane中组件的面向列布局,java,swing,jscrollpane,layout-manager,Java,Swing,Jscrollpane,Layout Manager,我正在开发我的第一个Swing应用程序,我遇到了一个布局问题,这个问题与我为用户创建的对话框窗口有关,该窗口用于在某些字段中输入值。由于显示的字段数量因用户选择而异,因此我在对话框中使用JScrollPane,将其视口设置为添加字段组件的面板 对于要显示的每个字段,我创建并添加三个组件: “字段名”标签 字段组件(通常是JTextField,但也可以是JComboBox或JDateChooser控件) “字段类型”标签 i、 e 名称标签:字符串 名称2标签:|||(编号) 所有这三个组件都可以
Sheldon R.这是一个常见的问题:这是一个不错的选择。或者,如图所示。还可以看一看。更新:我的三栏想法不可行,原因与我的大多数其他想法不可行相同,即BoxLayout,与大多数布局管理器一样,倾向于扩展组件以尽可能多地填充空间,因此我的字段被渲染为巨大:) 因此,我咬紧牙关,根据@trashgood所展示的示例,试图找出GroupLayout,这与我试图实现的目标类似。在弄清楚如何以GroupLayout的方式做我想做的事情后,我最初遇到了相同的扩展字段问题。然后,Oracle GroupLayout教程向我展示了如何防止组件被调整大小,即使用四参数版本的addcomponent方法:addcomponent(字段,GroupLayout.PREFERRED\u SIZE,GroupLayout.DEFAULT\u SIZE,GroupLayout.PREFERRED\u SIZE)我试过了,效果很好。再次感谢,@trashcan为我指明了正确的方向,也感谢所有提出想法的人
Sheldon R.您必须使用网格袋布局-示例是组件应该如何布局?你能提供一些ASCII艺术的一些行与'扩大'的看法显示?为什么不在同一个标签中的字段名后面包含类型呢?Andrew,我编辑了我的问题,将我要做的事情转换成ASCII格式。我想,在字段名之后包含类型是一个选项,但我试图模拟我们的用户已经熟悉的主应用程序的外观。另外,如果少了一列组件,我就不会有同样的问题吗?谢谢你们的建议,伙计们。另一个我没有提到的想法是使用三个垂直窗格,每种组件一个。我会使用FlowLayout将这些窗格添加到主窗格中,然后使用Y轴方向的BoxLayout将组件添加到这些窗格中。当我确定了一种可以实现我所希望的方法后,我会向大家汇报,但再次感谢大家让我知道我的选择是什么。。。