gpt4 book ai didi

java - 在 Java 中使用 GroupLayout 构建 GUI

转载 作者:搜寻专家 更新时间:2023-10-31 19:28:54 27 4
gpt4 key购买 nike

我需要使用 GroupLayout(而不是其他布局)构建一个 GUI。 GUI 将如下所示:

----------------------------
| field 1 field 2 field 3 |

| FFIEEELLLDD4 FIELDDDDDD5 |

| FIEEEEEEEEEEEEEEELDDDD 6 |
_____________________________

字段 1 - 3 各占 1 个长度,字段 4 和 5 各占 1.5 个长度,字段 6 占 3 个长度。这三个组在开始和结束时都对齐。

我一直在指这个 http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html .

为简单起见,我将使用 JLabel 作为字段的占位符。

到目前为止,这是我的代码,我没有运气获得我想要的 GUI。

public class RecorderGUI extends JFrame {
private final JLabel one;
private final JLabel two;
private final JLabel three;
private final JLabel four;
private final JLabel five;
private final JLabel six;
public RecorderGUI() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);

one = new JLabel("one");
two = new JLabel("two");
three = new JLabel("three");
four = new JLabel("four");
five = new JLabel("five");
six = new JLabel("six");
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup())
.addComponent(one)
.addComponent(two)
.addComponent(three)
.addGroup(layout.createSequentialGroup())
.addComponent(four)
.addComponent(five))
.addComponent(six));

layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(one)
.addComponent(two)
.addComponent(three))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(four)
.addComponent(five))
.addComponent(six));
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(final String[] args) {
RecorderGUI GUI = new RecorderGUI();
}

代码产生以下结果,这不是我想要的:一、二、三合并在一起;四个和五个也重叠。

抱歉,我想添加输出 GUI 的图片,但我无法附上图片,因为我的声誉低于 10 :(。

最佳答案

修复了一些括号并为组件添加了调整大小的提示:

layout.setHorizontalGroup(layout
.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(one, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(two, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(three, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(four, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(five, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(six, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));

layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(one).addComponent(two).addComponent(three))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(four).addComponent(five))
.addComponent(six));

enter image description here

关于java - 在 Java 中使用 GroupLayout 构建 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148958/

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