我们有一个面板,它显示具有任意数量的 JTextFields
、JComboBoxes
和 JTextAreas
的表单(每个都有一个相应的 JLabel
)。
当前代码使用 GridBagLayout
但我想知道是否已经有用于此类任务的布局(目前使用 WrapLayout
但对齐这些字段似乎很棘手)。
是否有专门针对此的布局,或者我最好只是坚持使用我们已有的可爱的 GridBagLayout 代码?
最佳答案
我几乎总是推荐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);
他们有a demo available通过Java Web启动
关于未知数量元素的 Java 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026503/