gpt4 book ai didi

java - SpringLayout 适用于 Windows 7 但不适用于 NetBSD?

转载 作者:行者123 更新时间:2023-12-04 06:49:07 25 4
gpt4 key购买 nike

我正在使用以下代码使用 SpringLayout 制作 GUI:

private void createAndShowGUI() {
frame = new JFrame("A GUI");
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.setResizable(false);

Container contentPane = frame.getContentPane();
SpringLayout layout = new SpringLayout();
contentPane.setLayout(layout);

contentPane.add(this);
layout.putConstraint(SpringLayout.WEST, this, 300, SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, this, 0, SpringLayout.NORTH, contentPane);

JLabel startLabel = new JLabel("Start Node:");
contentPane.add(startLabel);
layout.putConstraint(SpringLayout.WEST, startLabel, 5, SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, startLabel, 5, SpringLayout.NORTH, contentPane);

startNodes = new JComboBox();
contentPane.add(startNodes);
layout.putConstraint(SpringLayout.WEST, startNodes, 15, SpringLayout.WEST, contentPane); // THIS LINE
layout.putConstraint(SpringLayout.EAST, startNodes, -10, SpringLayout.WEST, this); // AND THIS ONE
layout.putConstraint(SpringLayout.NORTH, startNodes, 5, SpringLayout.SOUTH, startLabel);

layout.putConstraint(SpringLayout.EAST, contentPane, 0, SpringLayout.EAST, this);
layout.putConstraint(SpringLayout.SOUTH, contentPane, 0, SpringLayout.SOUTH, this);

frame.pack();
frame.setVisible(true);
}`

当我(在 NetBSD 上)运行它时,两条注释行似乎相互冲突。
当我只有第一个时,它会按预期向左对齐,但是当我添加第二个时,它会向右对齐,而不是像我期望的那样向右拉伸(stretch)。

奇怪的是它在 Windows 7 Pro 32bit 上运行得很好。

谁能告诉我我做错了什么?

最佳答案

事实证明,在 Java 1.5 中,您总是必须在 WEST/NORTH 约束之前指定 EAST/SOUTH 约束。否则,它不会正确定位组件。
这个错误在 1.6 中已修复,这就是为什么我在我的 Windows 机器上没有注意到它的原因。

关于java - SpringLayout 适用于 Windows 7 但不适用于 NetBSD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384000/

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