概要

NimbusLookAndFeelのカラーパレットを変更します。

サンプルコード

UIDefaults def = UIManager.getLookAndFeelDefaults();
def.put("nimbusOrange", new Color(255, 220, 35, 200));
View in GitHub: Java, Kotlin

解説

  • JProgressBar:
    • NimbusLookAndFeelPrimary Colorsの一つ(上記のサンプルではnimbusOrange)を変更して全体で色を変更
    • 以下の一覧表はNimbus Defaults (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)からの引用
      KeyValuePreview
      control#d6d9df (214,217,223)
      info#f2f2bd (242,242,189)
      nimbusAlertYellow#ffdc23 (255,220,35)
      nimbusBase#33628c (51,98,140)
      nimbusDisabledText#8e8f91 (142,143,145)
      nimbusFocus#73a4d1 (115,164,209)
      nimbusGreen#b0b332 (176,179,50)
      nimbusInfoBlue#2f5cb4 (47,92,180)
      nimbusLightBackground#ffffff (255,255,255)
      nimbusOrange#bf6204 (191,98,4)
      nimbusRed#a92e22 (169,46,34)
      nimbusSelectedText#ffffff (255,255,255)
      nimbusSelectionBackground#39698a (57,105,138)
      text#000000 (0,0,0)
  • JProgressBar:
    • 指定した領域を塗りつぶすPainterを作成してJProgressBar#putClientProperty("Nimbus.Overrides", d)で特定のコンポーネントの色を設定
      UIDefaults d = new UIDefaults();
      d.put("ProgressBar[Enabled].foregroundPainter", new Painter<JProgressBar>() {
        @Override public void paint(Graphics2D g, JProgressBar c, int w, int h) {
          g.setColor(new Color(100, 250, 120, 50));
          g.fillRect(0, 0, w - 1, h - 1);
          g.setColor(new Color(100, 250, 120, 150));
          g.fillRect(3, h / 2, w - 5, h / 2 - 2);
        }
      });
      progressbar.putClientProperty("Nimbus.Overrides", d);
      

参考リンク

コメント