gpt4 book ai didi

java - 使 JPanel 占据 JFrame 的全宽

转载 作者:行者123 更新时间:2023-12-02 00:04:31 26 4
gpt4 key购买 nike

我有两个 JPanel 放置在 JFrame 内,我希望它们都占据框架的整个宽度,但我不知道如何。另外,我不是 setBounds() 方法的忠实粉丝,因此我想知道是否有一种方法可以使组件采用完整宽度,然后指定所需的高度。

这是我的代码:

public class Test extends JFrame {
public Test() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setLocationRelativeTo(null);
setLayout(new BorderLayout());

JPanel header = new JPanel();
header.setBounds(0,0,300,50);
header.setLayout(new BorderLayout());
header.setBackground(Color.gray);

JPanel body = new JPanel();
body.setBounds(0,50,300,300);
body.setLayout(new BorderLayout());
body.setBackground(Color.black);


add(header, BorderLayout.NORTH);
add(body, BorderLayout.CENTER);
//setLayout(null);
setVisible(true);


}
}

最佳答案

您需要删除setLayout(null),这会反转之前setLayout(new BorderLayout())的工作

然后,您需要使用 setPreferredSize 设置 header 和正文的首选大小,而不是使用 setBounds()

public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setLocationRelativeTo(null);
setLayout(new BorderLayout());

JPanel header = new JPanel();
header.setPreferredSize(new Dimension(400, 50));
header.setLayout(new BorderLayout());
header.setBackground(Color.gray);

JPanel body = new JPanel();
body.setPreferredSize(new Dimension(400, 300));
body.setLayout(new BorderLayout());
body.setBackground(Color.black);

add(header, BorderLayout.NORTH);
add(body, BorderLayout.CENTER);
setVisible(true);
}

关于java - 使 JPanel 占据 JFrame 的全宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994101/

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