Swing/TabTitleHighlight のバックアップ(No.14)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabTitleHighlight へ行く。
  - 1 (2007-12-10 (月) 16:19:56)
- 2 (2007-12-10 (月) 20:58:44)
- 3 (2008-01-16 (水) 19:08:13)
- 4 (2013-01-27 (日) 19:49:18)
- 5 (2014-11-08 (土) 01:41:12)
- 6 (2015-12-10 (木) 04:04:12)
- 7 (2017-05-31 (水) 20:16:25)
- 8 (2018-05-17 (木) 16:32:51)
- 9 (2020-05-14 (木) 16:18:10)
- 10 (2021-11-05 (金) 00:00:53)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
- 16 (2025-06-19 (木) 12:41:37)
- 17 (2025-06-19 (木) 12:43:47)
 
- category: swing
folder: TabTitleHighlight
title: JTabbedPaneのタブ文字列をハイライト
tags: [JTabbedPane, MouseMotionListener]
author: aterai
pubdate: 2007-12-10T16:19:56+09:00
description: JTabbedPaneのタブ上に、マウスカーソルがある場合、その文字色を変更します。
image:  
Summary
JTabbedPaneのタブ上に、マウスカーソルがある場合、その文字色を変更します。
Screenshot

Advertisement
Source Code Examples
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);
    }
  }
});
Explanation
上記のサンプルでは、JTabbedPaneにMouseMotionListenerを追加しJTabbedPane#indexAtLocationメソッドでマウスカーソルの下にあるタブを取得しています。
- タブ文字色の変更が可能かはLookAndFeelに依存する- 例えばGTKLookAndFeelではJTabbedPane#setForegroundAt(...)メソッドでのタイトル変更は不可
 
- 例えば