gpt4 book ai didi

Java - BorderLayout - 组件是否应该占据整个宽度?

转载 作者:行者123 更新时间:2023-11-30 05:53:44 25 4
gpt4 key购买 nike

据我了解,将组件添加到 BorderLayout 时,它们会占据整个隔间的大小。将 panel1 添加到 contentPane 的北部时,似乎是下面的情况。但是,当我随后将 panel2 放在 panel3 的北边,并将 panel3 添加到 contentPane 的中心时,panel2 似乎占用了尽可能少的空间。

是什么导致了这些尺寸的差异?

public class BorderLayoutTesting {

public static void main (String[] args) {
JFrame frame = new JFrame();

JPanel panel1 = new JPanel();
panel1.setLayout(new BorderLayout());
panel1.add(new JLabel("name:"), BorderLayout.WEST);
panel1.add(new JTextField(), BorderLayout.CENTER);

JPanel panel2 = new JPanel();
panel2.setBorder(BorderFactory.createLineBorder(Color.black));
panel2.setLayout(new BorderLayout());
panel2.add(new JLabel("your full address with postcode:"), BorderLayout.WEST);
panel2.add(new JTextField(), BorderLayout.CENTER);

Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
container.add(panel1, BorderLayout.NORTH);
JPanel panel3 = new JPanel();
panel3.add(panel2, BorderLayout.NORTH);
container.add(panel3, BorderLayout.CENTER);
panel3.setBorder(BorderFactory.createLineBorder(Color.black));

frame.setSize(500,500);
frame.setVisible(true);
}

}

最佳答案

您的 panel3 JPanel 没有设置布局,因此它使用 JPanel 的默认 FlowLayout 而不是 BorderLayout。

关于Java - BorderLayout - 组件是否应该占据整个宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258996/

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