未知数量元素的Java布局

时间:2012-04-05 10:00:45

标签: java swing layout layout-manager

我们有一个面板,其中显示的表单具有任意数量的JTextFieldsJComboBoxesJTextAreas(每个都有相应的JLabel)。

当前代码使用GridBagLayout,但我想知道是否已经存在此类任务的布局(此时正在使用WrapLayout但是对齐字段似乎很棘手)。

有没有特别针对此的布局,或者我最好坚持使用我们已有的可爱的GridBagLayout代码?

1 个答案:

答案 0 :(得分:3)

创建表单时,我几乎总是建议将JGoodies FormLayout作为布局。 documentation包含一个包含动态数量组件的布局示例(代码段6,我在此处复制粘贴以提供您的想法)

FormLayout layout = new FormLayout(
“right:max(40dlu;p), 4dlu, 80dlu, 7dlu, ” // 1st major column
+ “right:max(40dlu;p), 4dlu, 80dlu”, // 2nd major column
“”); // add rows dynamically
DefaultFormBuilder builder = new DefaultFormBuilder(layout);
builder.setDefaultDialogBorder();
builder.appendSeparator(“Segment”);
builder.append(“Identifier”, idField);
builder.nextLine();
builder.append(“PTI [kW]”, ptiField);
builder.append(“Power [kW]”, powerField);
builder.append(“len [mm]”, lenField);
builder.nextLine();
builder.appendSeparator(“Diameters”);
builder.append(“da [mm]”, daField);
builder.append(“di [mm]”, diField);
builder.append(“da2 [mm]”, da2Field);
builder.append(“di2 [mm]”, di2Field);
builder.append(“R [mm]”, rField);
builder.append(“D [mm]”, dField);

他们通过Java Web Start a demo available获得