gpt4 book ai didi

java - 将 JPanel 大小设置为不大于其包含的元素

转载 作者:行者123 更新时间:2023-12-01 22:25:29 26 4
gpt4 key购买 nike

我试图让 JPanel 不高于它包含的单个 JLabel 中的文本。下面是一些简单的示例代码,仅保留基本问题:

import java.awt.*;
import javax.swing.*;

public class MinimumSpacing {

private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 250);
JPanel pane0 = new JPanel(new GridLayout(0,1,0,0));
JPanel pane1 = new JPanel(new GridLayout(0,1,0,0));
JPanel pane2 = new JPanel(new GridLayout(0,1,0,0));

pane1.add(new JLabel("This is line #1.", JLabel.CENTER));
pane2.add(new JLabel("This is line #2.", JLabel.CENTER));
pane2.add(new JLabel("This is line #3.", JLabel.CENTER));
pane2.add(new JLabel("This is line #4.", JLabel.CENTER));
pane2.add(new JLabel("This is line #5.", JLabel.CENTER));

pane0.add(pane1);
pane0.add(pane2);
frame.add(pane0);
frame.setVisible(true);
}

public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
);
} catch (Exception exc) {
//
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}

这是我得到的结果:

enter image description here

我想要的是“line #1”位于框架的顶部,其他 4 条线位于其正下方。缩小 pane1 大小以实现此目的的最佳方法是什么?

如有任何帮助,我们将不胜感激。

最佳答案

不要使用 GridLayout。 GridLayout 始终会将每个组件的大小调整为相同大小。

也许你应该使用垂直的BoxLayout

阅读 Swing 教程中关于 Layout Managers 的部分了解更多信息和工作示例。

关于java - 将 JPanel 大小设置为不大于其包含的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28864516/

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