gpt4 book ai didi

java - 在 BorderLayout 的 NORTH 添加没有布局的面板

转载 作者:行者123 更新时间:2023-11-29 09:48:43 26 4
gpt4 key购买 nike

同事。

我正在尝试用 Java 构建简单的 GUI,其中 JFrame 具有边框布局。我想把带有 JTable 的 JScrollPane 放在 CENTER,没有布局的 JPanel 放在 NORTH。

问题是 JPanel 不可见。有一个简单的问题示例:

JFrame frame = new JFrame("Test frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton button = new JButton("Test button");
button.setBounds(10, 10, 40, 20);

JPanel panelN = new JPanel(null); // layout = null, panelN without layout
panelN.add(button);
frame.add(panelN, BorderLayout.NORTH);

JTable table = new JTable(new DefaultTableModel(4, 4));
JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane, BorderLayout.CENTER);

frame.setSize(400, 400);
frame.setVisible(true);

最佳答案

您必须使用 LayoutManager。不使用 layoutManager 是完全不鼓励的,但如果你想要这个,你也必须将 panel.setBounds(..) 设置到面板。

默认情况下 JPanelFlowLayout 所以如果你把

JPanel panelN = new JPanel(); // FlowLayout used 
panelN.add(button);
frame.add(panelN, BorderLayout.NORTH);

所以你的框架看起来像这样。

example

布局管理器决定容器内组件的大小和位置。尽管组件可以提供大小和对齐提示,但容器的布局管理器对容器内组件的大小和位置拥有最终决定权。

强烈建议,例如,如果您必须调整组件大小或以不同的分辨率显示,您将此工作委托(delegate)给布局管理器

关于java - 在 BorderLayout 的 NORTH 添加没有布局的面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176502/

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