概要

JTabbedPaneのタブ上に、マウスカーソルがある場合、その文字色を変更します。

サンプルコード

tabbedPane.addMouseMotionListener(new MouseMotionAdapter() {
  @Override public void mouseMoved(MouseEvent e) {
    JTabbedPane source = (JTabbedPane) e.getComponent();
    int tgt = source.indexAtLocation(e.getX(), e.getY());
    for (int i = 0; i < source.getTabCount(); i++) {
      source.setForegroundAt(i, i == tgt ? Color.GREEN : Color.BLACK);
    }
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JTabbedPaneMouseMotionListenerを追加しJTabbedPane#indexAtLocationメソッドでマウスカーソルの下にあるタブを取得しています。

  • タブ文字色の変更が可能かはLookAndFeelに依存する
    • 例えばGTKLookAndFeelではJTabbedPane#setForegroundAt(...)メソッドでのタイトル変更は不可

参考リンク

コメント