1

Swing アプリケーションを実装していると、一貫した外観を持つべきコンポーネントのクラスに気付くことがよくあります。
例:アプリケーション オブジェクトMypanelを拡張JPanelして表すため、黄色の背景に濃い黄色の境界線が表示されます。
Swing カラーマネジメントを活用することはできますか?
私の考えは、自分の色をUIManager.getLookAndFeelDefaultsマップに入れてから、何らかの方法でコンポーネントにバインドすることです。
この「どういうわけか」が問題です。これを最も単純な形で行うにはどうすればよいでしょうか。

4

1 に答える 1

3

いくつかのコンポーネントだけをカスタマイズしたい場合は、次のように機能するはずです。

// Specify the colors
UIDefaults uiDef = new UIDefaults();
uiDef.put("Panel.background", Color.BLUE);

// Use the colors on a specific component
JPanel panel = new JPanel();
panel.putClientProperty("Nimbus.Overrides", uiDef);
SwingUtilities.updateComponentTreeUI(panel);

キー名とデフォルトの色とペインタについてはNimbus のデフォルトを参照してください。

于 2011-12-13T11:21:38.740 に答える