概要

JProgressBarの進捗状況の色や、それで塗り潰された場合の進捗文字列色を変更します。

サンプルコード

// progressBar1: UIManager.put(...)
UIManager.put("ProgressBar.foreground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.ORANGE);
UIManager.put("ProgressBar.background", Color.WHITE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);

// progressBar2: BasicProgressBarUI
progressBar2.setForeground(Color.BLUE);
progressBar2.setBackground(Color.CYAN.brighter());
progressBar2.setUI(new BasicProgressBarUI() {
  @Override protected Color getSelectionForeground() {
    return Color.PINK;
  }

  @Override protected Color getSelectionBackground() {
    return Color.BLUE;
  }
});
View in GitHub: Java, Kotlin

解説

  • 上: Default
  • 中: UIManager.put(...)
    • 文字色: ProgressBar.foreground
    • 背景色: ProgressBar.background
    • 進捗状況で塗り潰された場合の文字色: ProgressBar.selectionForeground
    • 進捗状況の塗り潰し色: ProgressBar.selectionBackground
    • NimbusLookAndFeelではすべて無効
    • WindowsLookAndFeelではProgressBar.backgroundが無効
  • 下: BasicProgressBarUI
    • 文字色: JProgressBar#setForeground(Color)メソッドで設定
    • 背景色: JProgressBar#setBackground(Color)メソッドで設定
    • 進捗状況で塗り潰された場合の文字色: BasicProgressBarUI#getSelectionForeground()メソッドをオーバーライドして設定
    • 進捗状況の塗り潰し色: BasicProgressBarUI#getSelectionBackground()メソッドをオーバーライドして設定

参考リンク

コメント