概要

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色でクリックされたトラック領域に網目模様が描画される

参考リンク

コメント