gpt4 book ai didi

java - 为什么在使用 setLayout() 时无法更改 JFRame 背景的颜色?

转载 作者:行者123 更新时间:2023-12-01 18:09:46 34 4
gpt4 key购买 nike

我尝试将 JFrame 的背景颜色设置为红色,同时将 JPanel 保留白色。但它不能与 setLayout 一起工作

    private void buildGraphics(){
JFrame frame = new JFrame();
setTitle("Application");
setBounds(100, 100, 600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
frame.setBackground(Color.red);
JPanel panel = new JPanel();
panel.setBounds(50, 50, 500, 70);
panel.setBackground(Color.white);
panel.setBorder(BorderFactory.createTitledBorder("Click to choose..."));
panel.add(button1);
panel.add(button2);
panel.add(button3);
getContentPane().add(panel);


}

最佳答案

您已经有一个框架(您的类正在扩展 JFrame,因此它是一个 JFrame),并且 buildGraphics() 必须构建现有框架,您不必创建新框架:

private void buildGraphics() {

this.setTitle("Application");
this.setBounds(100, 100, 600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(null);
this.setBackground(Color.red);

JPanel panel = new JPanel();

panel.setBounds(50, 50, 500, 70);
panel.setBackground(Color.white);
panel.setBorder(BorderFactory.createTitledBorder("Click to choose..."));
panel.add(button1);
panel.add(button2);
panel.add(button3);

this.getContentPane().add(panel);

}

关于java - 为什么在使用 setLayout() 时无法更改 JFRame 背景的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60488192/

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