簡體   English   中英

為什么 setBackground 到 JButton 不起作用?

[英]Why does setBackground to JButton does not work?

我有以下簡單的代碼:

btn = new JButton();
btn.setBackground(backgroundColor)

我在使用時工作:

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");

但是在我評論上述行后它停止工作。 有誰知道為什么會發生這種情況以及如何在不使用顯式外觀的情況下為按鈕設置背景顏色?

添加

在我看來,我需要使用getBackground 但我不知道如何。

需要將元素的 Opaque 設置為 true 才能填充顏色

     btn = new JButton();
     btn.setOpaque(true);
     btn.setBackground(backgroundColor);

來自 setBackground() javadoc:

尊重這個屬性取決於外觀和感覺,有些人可能會選擇忽略它。

也許你的 LAF 只是忽略了它。

添加 btn.setBorderPainted(false)

    btn.setBorderPainted(false);
    btn.setOpaque(true);
    btn.setBackground(Color.BLACK);
    btn.setForeground(Color.BLUE);

只需在要為其設置背景的按鈕上單擊一次,然后轉到屬性窗口。 在那里,第二個選項將是背景。 單擊它的省略號,您可以根據自己的喜好更改顏色。 在您運行程序之前,顏色不會顯示在您框架中的按鈕上。 您可以看到按鈕的顏色是您喜歡的顏色。

問題也可能與您創建按鈕的方式有關。 檢查上面的代碼是否:

public class Test extends JApplet{

public void init() 
{  
    java.awt.EventQueue.invokeLater(new Runnable()
    {
        public void run() 
        {   
            setSize(200, 200);
            setLayout(null);

            JPanel p = new JPanel();
            getContentPane().add(p);
            p.setSize(getSize());
            p.setLayout(null);

            JButton b = new JButton("test");
            p.add(b);
            b.setBounds(10, 10, 100, 20);
            b.setBackground(Color.GREEN);

        }
    });
}

}

暫無
暫無

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

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