gpt4 book ai didi

需要 Java GroupLayout 验证设计和对齐帮助

转载 作者:行者123 更新时间:2023-11-29 03:43:15 25 4
gpt4 key购买 nike

我正在使用 GroupLayout 在 Windows 7(64 位)上的 Java 7 中构建我的框架。以下是我在 GroupLayout 上看到 Oracle 示例时使用的布局结构。

所需的布局:

+------------------------------------------+

| [Label1] [ComboBox1] |

| [Label2] [TextField1] [Button1] |

| [Label3] [TextField2] [Button2] |

| [Label4] [ComboBox2] |

+------------------------------------------+

我的代码设计:

layout.setHorizontalGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING))
.addComponent(Label1)
.addComponent(Label2)
.addComponent(Label3)
.addComponent(Label4)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING))
.addComponent(ComboBox1)
.addComponent(TextField1)
.addComponent(TextField2)
.addComponent(ComboBox2)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING))
.addComponent(Button1)
.addComponent(Button2)

);

layout.linkSize(SwingConstants.HORIZONTAL, Button1, Button2);

layout.setVerticalGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE))
.addComponent(Label1)
.addComponent(ComboBox1)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE))
.addComponent(Label2)
.addComponent(TextField1)
.addComponent(Button1)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE))
.addComponent(Label3)
.addComponent(TextField2)
.addComponent(Button2)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE))
.addComponent(Label4)
.addComponent(ComboBox2)
);

我需要让更有经验的人检查一下。目前,此代码会导致大小 ComboBox1、ComboBox2TextField2 显着减小的对齐问题。

您有什么补救建议?

最佳答案

首先,我个人会避免使用 GroupLayout,它并不是真正适合手动编码的。

我会改用 GridBagLayout

setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
add(label1, gbc);
gbc.gridx++;
add(comboBox1, gbc);

gbc.gridx = 0;
gbc.gridy++;
add(label2, gbc);
gbc.gridx++;
add(textField1, gbc);
gbc.gridx++;
add(button1, gbc);

gbc.gridx = 0;
gbc.gridy++;
add(label3, gbc);
gbc.gridx++;
add(textField2, gbc);
gbc.gridx++;
add(button2, gbc);

gbc.gridx = 0;
gbc.gridy++;
add(label4, gbc);
gbc.gridx++;
add(comboBox2, gbc);

关于需要 Java GroupLayout 验证设计和对齐帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com