• title: JTabbedPaneのタブ文字列をハイライト tags: [JTabbedPane, MouseMotionListener] author: aterai pubdate: 2007-12-10T16:19:56+09:00 description: JTabbedPaneのタブ上に、マウスカーソルがある場合、その文字色を変更します。

概要

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

サンプルコード

jtp.addMouseMotionListener(new MouseMotionAdapter() {
  @Override public void mouseMoved(MouseEvent e) {
    JTabbedPane source = (JTabbedPane)e.getSource();
    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メソッドで、マウスカーソルの下にあるタブを取得しています。

GTKLookAndFeel(Ubuntu+GNOME+jdk1.6.0_03)などでは、タブの文字色を変更出来ないようです。

参考リンク

コメント