簡體   English   中英

Java getContentPane()。setBackground()無法正常工作

[英]Java getContentPane().setBackground() not working

我試圖將GUI調用封裝為單個類。 我的窗口出現,但是背景仍然是默認顏色,而不是紅色。

ChatProgram.java

package ChatPkg;

public class ChatProgram {

    /**
     * Launch the application.
     */
    public static void main(String[] args) {

        ChatWindow.initialize();
        ChatWindow.RunWindow();

    }

}

ChatWindow.java

package ChatPkg;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListSelectionModel;

public final class ChatWindow {

    static JFrame frame;

    /**
     * Create the application.
     */
    private ChatWindow() { }

    public static void RunWindow() {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Initialize the contents of the frame.
     */
    public static void initialize() {
        frame = new JFrame("Chat program");
        frame.setBounds(100, 100, 450, 450);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JCheckBox chckbxCvbc = new JCheckBox("cvbc");
        frame.getContentPane().add(chckbxCvbc);

        // Set background color
        frame.getContentPane().setBackground(Color.red);
    }

}

是的,我是Java的新手,而Google的結果都沒有解決我的問題。

應該直接添加GUI組件到的內容窗格中JFrame 另外,您不應修改其屬性(就像您嘗試更改背景一樣)。

您始終需要一個充當容器的JPanel ,在其上添加圖形元素。 這是編寫初始化函數的方法:

public static void initialize() {
    frame = new JFrame("Chat program");
    frame.setBounds(100, 100, 450, 450);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    JCheckBox chckbxCvbc = new JCheckBox("cvbc");
    panel.add(chckbxCvbc);

    // Set background color and add panel to the Jframe
    panel.setBackground(Color.RED);
    frame.getContentPane().add(panel);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM