Nimbus LAF を使用しており、シンプルな背景を変更したいと考えていますJButton
。
JButton jbutton = new JButton("test");
jbutton.setBackground(Color.BLACK);
ルック アンド フィールを変更すると動作しますが、Nimbus では動作しません。
どうすればできますか?
ご協力いただきありがとうございます。
Nimbus は Painter を使用してさまざまなスタイルを描画します。デフォルトでは、ボタンには単一の色ではなくグラデーションがあります。ボタンを参照してください: Nimbus デフォルト リスト
独自の Painter を記述して、デフォルトをオーバーライドできます。または、キー「Button.background」で背景色を上書きし、デフォルト ペインターを使用します。
UIDefaults overrides = new UIDefaults();
overrides.put("Button.background", Color.RED);
jbutton.putClientProperty("Nimbus.Overrides", overrides);
jbutton.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
SwingUtilities.updateComponentTreeUI(jbutton);
または、すべてのボタンの色を変更したい場合は、次を試してください。
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put("Button.background", Color.RED);
ところで。この色を変更すると、JButton は Nimbus のデフォルト キー「nimbusBase」に基づきます。
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put( "nimbusBase", Color.RED );
次に、ボタンだけでなく、ニンバスのデフォルト ブルーまたはセカンダリ カラーを使用するすべてのものを新しい色に変更します。
Nimbus Default Color をすべてのコンポーネントに変更する効果を示すことができる素敵な Nimbus Theme Creator を見つけました: http://aephyr.googlecode.com/svn/trunk