有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我尝试将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);


}

共 (1) 个答案

  1. # 1 楼答案

    好的,我现在创建了另一个JPanel,并将我的第一个放入其中以控制背景颜色

        JFrame frame = new JFrame();
        setTitle(" Application");
        setBounds(100, 100, 600, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(null);
    
        JPanel panelMain = new JPanel();
        panelMain.setBounds(5, 5, 595, 395);
        panelMain.setBackground(Color.red);
        getContentPane().add(panelMain);
    
    
        JPanel panel = new JPanel();
        panel.setBounds(50, 50, 500, 70);
        panel.setBackground(Color.white);
        panel.setBorder(BorderFactory.createTitledBorder("What would you like to do?"));
        panel.add(button1);
        panel.add(button2);
        panel.add(button3);
        panelMain.add(panel);