JTabbedPaneのタブ文字列をハイライト
Total: 7490
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
JTabbedPane
のタブ上に、マウスカーソルがある場合、その文字色を変更します。
Screenshot
Advertisement
サンプルコード
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);
}
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTabbedPane
にMouseMotionListener
を追加しJTabbedPane#indexAtLocation
メソッドでマウスカーソルの下にあるタブを取得しています。
- タブ文字色の変更が可能かは
LookAndFeel
に依存する- 例えば
GTKLookAndFeel
ではJTabbedPane#setForegroundAt(...)
メソッドでのタイトル変更は不可
- 例えば