Swing の JTabbedPane のタブ切り替えイベント
ここでは JTabbedPane のタブ切り替えイベントについて説明します。
JTabbedPane の基本的な利用方法については「タブ表示 JTabbedPane の使い方」 をみてください。 この記事はほぼ同じサンプルコードを利用して説明します。
さて、ここでは次のようにタブ切り替えイベントをとらえて、選択されたタブのタイトルを表示してみましょう。
タブが切り替わった時に JTabbedPane では、チェンジイベント ChangeEvent が発生します。
JTabbedPane の addChangeListener メソッドで ChangeListener を設定すれば、 リスナーにて ChangeEvent を取得することができます。
package com.keicode.java.testapp;
...
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@SuppressWarnings("serial")
public class TabTest1 extends JFrame {
JTabbedPane tabbedPane;
public TabTest1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
// TabbedPane
tabbedPane = new JTabbedPane();
tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int selIndex = tabbedPane.getSelectedIndex();
String t = tabbedPane.getTitleAt(selIndex);
System.out.println("Selected tab: " + t);
}
});
add(tabbedPane);
...
現在のタブのインデックスは getSelectedIndex メソッドで取得ででき、 特定のインデックスにあるタブのタイトルは getTitleAt メソッドで直ちに取得できます。