• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTabbedPaneのタブ文字列をハイライト
#navi(../)
*JTabbedPaneのタブ文字列をハイライト [#u3553382]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2007-12-10~
更新日:&lastmod;
---
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
---
* 概要 [#summary]
`JTabbedPane`のタブ上に、マウスカーソルがある場合、その文字色を変更します。

#contents
#download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTU7QqLieI/AAAAAAAAAm0/dgW3rio-pzA/s800/TabTitleHighlight.png)

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

#screenshot

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

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

GTK L&F(Ubuntu+GNOME+jdk1.6.0_03) では、タブの文字色を変更出来ないようです。
- タブ文字色の変更が可能かは`LookAndFeel`に依存する
-- 例えば`GTKLookAndFeel`では`JTabbedPane#setForegroundAt(...)`メソッドでのタイトル変更は不可

**参考リンク [#c27d90d2]
**コメント [#y35f5c6d]
* 参考リンク [#reference]
- [[JTabbedPaneの選択文字色を変更>Swing/ColorTab]]

* コメント [#comment]
#comment
#comment