• category: swing folder: ScrollBarTrackHighlightForeground title: JScrollBarのトラックハイライト色を変更する tags: [JScrollBar, UIManager] author: aterai pubdate: 2023-09-25T01:02:05+09:00 description: JScrollBarのトラック色やトラックをマウスでクリックした時に使用されるとハイライト色を変更します。 image: https://drive.google.com/uc?id=17jffD7-KwJvXflfEg3_V4PNMqBnx2LYy

概要

JScrollBarのトラック色やトラックをマウスでクリックした時に使用されるとハイライト色を変更します。

サンプルコード

JTextArea log = new JTextArea(200, 200) {
  @Override public void updateUI() {
    super.updateUI();
    EventQueue.invokeLater(() -> {
      info("ScrollBar.track");
      info("ScrollBar.trackForeground");
      info("ScrollBar.trackHighlight");
      info("ScrollBar.trackHighlightForeground");
    });
  }

  private void info(String key) {
    Color color = UIManager.getLookAndFeelDefaults().getColor(key);
    append(String.format("%s: %s%n", key, color));
  }
};
UIManager.put("ScrollBar.track", Color.GREEN);
UIManager.put("ScrollBar.trackForeground", Color.WHITE);
UIManager.put("ScrollBar.trackHighlight", Color.PINK);
UIManager.put("ScrollBar.trackHighlightForeground", Color.RED);
JScrollPane scroll = new JScrollPane(log);
add(scroll);
View in GitHub: Java, Kotlin

解説

  • ScrollBar.trackScrollBar.trackForeground
    • JScrollBarの通常状態のトラック色
    • MotifLookAndFeelではScrollBar.trackが有効
    • WindowsClassicLookAndFeelでは両方有効でこの2色でトラックに網目模様が描画される
  • ScrollBar.trackHighlightScrollBar.trackHighlightForeground
    • JScrollBarのトラックがマウスでクリックされたとき、その領域を描画するハイライト色
    • WindowsClassicLookAndFeelでのみ有効で、この2色でクリックされたトラック領域に網目模様が描画される

参考リンク

コメント