11

次の簡単なコードがあります。

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

私が使用したときに働いた:

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

しかし、上記の行にコメントした後、動作しなくなりました。なぜそれが起こるのか、明示的なルックアンドフィールを使用せずにボタンに背景色を設定する方法を知っている人はいますか?

追加した

を使用する必要があるように思えますgetBackground。しかしどうしたら良いかわからない。

4

6 に答える 6

14

色を塗りつぶすには、要素の Opaque を true に設定する必要があります

     btn = new JButton();
     btn.setOpaque(true);
     btn.setBackground(backgroundColor);
于 2013-07-18T12:31:41.953 に答える
6

setBackground() javadoc から:

このプロパティを尊重するかどうかはルック アンド フィール次第であり、無視することを選択する人もいます。

多分あなたのLAFはそれを無視しただけです。

于 2011-02-14T11:07:25.313 に答える
-1

背景を設定するボタンを1回クリックして、プロパティウィンドウに移動します。向こうでは、2番目のオプションはバックグラウンドになります。省略記号をクリックすると、好みに合わせて色を変更できます。プログラムを実行するまで、フレームのボタンに色は表示されません。ボタンがお好みの色になっていることがわかります。

于 2012-06-27T16:08:12.273 に答える
-1

ボタンの作成方法にも問題がある可能性があります。上記のコードが次のとおりかどうかを確認します。

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);

        }
    });
}

}

于 2011-02-14T11:12:19.663 に答える