概要

Swingコンポーネントの色をSystemColorクラスから取得します。

サンプルコード

Box box = Box.createVerticalBox();
box.add(makeSystemColorPanel(SystemColor.desktop, "desktop"));
box.add(makeSystemColorPanel(SystemColor.activeCaption, "activeCaption"));
box.add(makeSystemColorPanel(SystemColor.inactiveCaption, "inactiveCaption"));
box.add(makeSystemColorPanel(SystemColor.activeCaptionText, "activeCaptionText"));
box.add(makeSystemColorPanel(SystemColor.inactiveCaptionText, "inactiveCaptionText"));
box.add(makeSystemColorPanel(SystemColor.activeCaptionBorder, "activeCaptionBorder"));
box.add(makeSystemColorPanel(SystemColor.inactiveCaptionBorder, "inactiveCaptionBorder"));
box.add(makeSystemColorPanel(SystemColor.window, "window"));
box.add(makeSystemColorPanel(SystemColor.windowText, "windowText"));
box.add(makeSystemColorPanel(SystemColor.menu, "menu"));
box.add(makeSystemColorPanel(SystemColor.menuText, "menuText"));
box.add(makeSystemColorPanel(SystemColor.text, "text"));
box.add(makeSystemColorPanel(SystemColor.textHighlight, "textHighlight"));
box.add(makeSystemColorPanel(SystemColor.textText, "textText"));
box.add(makeSystemColorPanel(SystemColor.textHighlightText, "textHighlightText"));
box.add(makeSystemColorPanel(SystemColor.control, "control"));
box.add(makeSystemColorPanel(SystemColor.controlLtHighlight, "controlLtHighlight"));
box.add(makeSystemColorPanel(SystemColor.controlHighlight, "controlHighlight"));
box.add(makeSystemColorPanel(SystemColor.controlShadow, "controlShadow"));
box.add(makeSystemColorPanel(SystemColor.controlDkShadow, "controlDkShadow"));
box.add(makeSystemColorPanel(SystemColor.controlText, "controlText"));
box.add(makeSystemColorPanel(SystemColor.control, "control"));
box.add(makeSystemColorPanel(SystemColor.scrollbar, "scrollbar"));
box.add(makeSystemColorPanel(SystemColor.info, "info"));
box.add(makeSystemColorPanel(SystemColor.infoText, "infoText"));
View in GitHub: Java, Kotlin

解説

各プラットフォームのデスクトップデザインに対応したシステムカラーは、SystemColorクラスのstaticフィールドにまとめて定義されています。例えばWindowsプラットフォームでデスクトップのカスタマイズでテーマなどを変更すると、このSystemColorも動的にその変更に追従します。

  • LookAndFeelを変更してもSystemColorは変化しない
  • GTKLookAndFeelがシステムデフォルトになる環境ではSystemColorを取得不可

参考リンク

コメント