Swing/TabTitleHighlight のバックアップの現在との差分(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TabTitleHighlight へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
--- 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 --- * 概要 [#u3553382] * 概要 [#summary] `JTabbedPane`のタブ上に、マウスカーソルがある場合、その文字色を変更します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTU7QqLieI/AAAAAAAAAm0/dgW3rio-pzA/s800/TabTitleHighlight.png) * サンプルコード [#r7ba520e] * サンプルコード [#sourcecode] #code(link){{ jtp.addMouseMotionListener(new MouseMotionAdapter() { tabbedPane.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseMoved(MouseEvent e) { JTabbedPane source = (JTabbedPane)e.getSource(); 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); } } }); }} * 解説 [#a0f82c36] 上記のサンプルでは、`JTabbedPane`に`MouseMotionListener`を追加し、`JTabbedPane#indexAtLocation`メソッドで、マウスカーソルの下にあるタブを取得しています。 * 解説 [#explanation] 上記のサンプルでは、`JTabbedPane`に`MouseMotionListener`を追加し`JTabbedPane#indexAtLocation`メソッドでマウスカーソルの下にあるタブを取得しています。 `GTKLookAndFeel`(`Ubuntu`+`GNOME`+`jdk1.6.0_03`)などでは、タブの文字色を変更出来ないようです。 - タブ文字色の変更が可能かは`LookAndFeel`に依存する -- 例えば`GTKLookAndFeel`では`JTabbedPane#setForegroundAt(...)`メソッドでのタイトル変更は不可 * 参考リンク [#c27d90d2] - [http://terai.xrea.jp/Swing/ColorTab.html JTabbedPaneの選択文字色を変更] * 参考リンク [#reference] - [[JTabbedPaneの選択文字色を変更>Swing/ColorTab]] * コメント [#y35f5c6d] * コメント [#comment] #comment #comment