---
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
---
* 概要 [#summary]
`JScrollBar`のトラック色やトラックをマウスでクリックした時に使用されるとハイライト色を変更します。

#download(https://drive.google.com/uc?id=17jffD7-KwJvXflfEg3_V4PNMqBnx2LYy)

* サンプルコード [#sourcecode]
#code(link){{
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);
}}

* 解説 [#explanation]
- `ScrollBar.track`、`ScrollBar.trackForeground`
-- `JScrollBar`の通常状態のトラック色
-- `MotifLookAndFeel`では`ScrollBar.track`が有効
-- `WindowsClassicLookAndFeel`では両方有効でこの`2`色でトラックに網目模様が描画される
- `ScrollBar.trackHighlight`、`ScrollBar.trackHighlightForeground`
-- `JScrollBar`のトラックがマウスでクリックされたとき、その領域を描画するトラックハイライト色
-- `JScrollBar`のトラックがマウスでクリックされてスクロール中、その領域を描画するトラックハイライト色
-- `WindowsClassicLookAndFeel`でのみ有効で、この`2`色でクリックされたトラック領域に網目模様が描画される

* 参考リンク [#reference]
- [[JScrollBarに検索結果をハイライト表示>Swing/ScrollBarSearchHighlighter]]
- [[MetalLookAndFeelを適用したJSliderで現在値までのトラック背景色を変更する>Swing/SliderAltTrackColor]]

* コメント [#comment]
#comment
#comment