Swing/TabTitleHighlight のバックアップの現在との差分(No.3)
TITLE:JTabbedPaneのタブ文字列をハイライト
JTabbedPaneのタブ文字列をハイライト
編集者:Terai Atsuhiro~
作成日:2007-12-10
更新日:2021-11-05 (金) 00:00:53
概要
JTabbedPane
のタブ上に、マウスカーソルがある場合、その文字色を変更します。
Screenshot
Advertisement
概要
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メソッドで、マウスカーソルの下にあるタブを取得しています。解説
上記のサンプルでは、JTabbedPane
にMouseMotionListener
を追加しJTabbedPane#indexAtLocation
メソッドでマウスカーソルの下にあるタブを取得しています。
GTK L&F(Ubuntu+GNOME+jdk1.6.0_03) では、タブの文字色を変更出来ないようです。
- タブ文字色の変更が可能かは
LookAndFeel
に依存する- 例えば
GTKLookAndFeel
ではJTabbedPane#setForegroundAt(...)
メソッドでのタイトル変更は不可
- 例えば