• title: JProgressBarの進捗状況と進捗文字列色を変更する tags: [JProgressBar, UIManager, LookAndFeel] author: aterai pubdate: 2014-08-25T00:01:25+09:00 description: JProgressBarの進捗状況の色や、それで塗り潰された場合の進捗文字列色を変更します。

概要

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

サンプルコード

//progressBar1
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
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()をオーバーライド

参考リンク

コメント