概要

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

サンプルコード

UIDefaults def = UIManager.getLookAndFeelDefaults();
def.put("nimbusOrange", new Color(255, 220, 35, 200));
view all

解説

  • 上の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);
      

参考リンク

コメント