TITLE:JTabbedPaneのタブ文字列をハイライト

JTabbedPaneのタブ文字列をハイライト

編集者:Terai Atsuhiro~

作成日:2007-12-10
更新日:2021-11-05 (金) 00:00:53
  • category: swing folder: TabTitleHighlight title: JTabbedPaneのタブ文字列をハイライト tags: [JTabbedPane, MouseMotionListener] author: aterai pubdate: 2007-12-10T16:19:56+09:00 description: JTabbedPaneのタブ上に、マウスカーソルがある場合、その文字色を変更します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTU7QqLieI/AAAAAAAAAm0/dgW3rio-pzA/s800/TabTitleHighlight.png

概要

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

概要

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

#screenshot

サンプルコード

#spanend
#spandel
jtp.addMouseMotionListener(new MouseMotionAdapter() {
#spanend
  @Override
  public void mouseMoved(MouseEvent e) {
    JTabbedPane source = (JTabbedPane)e.getSource();
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
tabbedPane.addMouseMotionListener(new MouseMotionAdapter() {
#spanend
  @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);
    for (int i = 0; i < source.getTabCount(); i++) {
      source.setForegroundAt(i, i == tgt ? Color.GREEN : Color.BLACK);
    }
  }
});
  • &jnlp;
  • &jar;
  • &zip;

解説

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

解説

上記のサンプルでは、JTabbedPaneMouseMotionListenerを追加しJTabbedPane#indexAtLocationメソッドでマウスカーソルの下にあるタブを取得しています。 GTK L&F(Ubuntu+GNOME+jdk1.6.0_03) では、タブの文字色を変更出来ないようです。
  • タブ文字色の変更が可能かはLookAndFeelに依存する
    • 例えばGTKLookAndFeelではJTabbedPane#setForegroundAt(...)メソッドでのタイトル変更は不可

参考リンク

コメント

参考リンク

コメント