選択されているタブのインデックスを取得する

広告

タブの中で現在選択されているタブのインデックス番号を取得する方法を確認します。JTabbedPaneクラスで用意されている「getSelectedIndex」メソッドを使います。

タブ区画で現在選択されているインデックスを返します。現在選択されている
タブがない場合は -1 を返します。

戻り値:
  選択されているタブのインデックス

戻り値として現在選択されているタブのインデックス番号をint型の値として取得します。

実際の使い方は次のようになります。

JTabbedPane tabbedpane = new JTabbedPane();
tabbedpane.addTab("title1", new JButton("button1"));

int index = tabbedpane.getSelectedIndex();

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JTabbedPaneTest14.java

import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.event.*;

public class JTabbedPaneTest14 extends JFrame implements ChangeListener{

  JTabbedPane tabbedpane;
  JLabel indexLabel;

  public static void main(String[] args){
    JTabbedPaneTest14 frame = new JTabbedPaneTest14();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JTabbedPaneTest14(){
    indexLabel = new JLabel();

    JPanel dispPanel = new JPanel();
    dispPanel.add(indexLabel);

    tabbedpane = new JTabbedPane();
    tabbedpane.addChangeListener(this);

    JPanel tabPanel1 = new JPanel();
    tabPanel1.add(new JButton("button1"));

    JPanel tabPanel2 = new JPanel();
    tabPanel2.add(new JLabel("Name:"));
    tabPanel2.add(new JTextField("", 10));

    JPanel tabPanel3 = new JPanel();
    tabPanel3.add(new JButton("button2"));

    tabbedpane.addTab("tab1", tabPanel1);
    tabbedpane.addTab("tab2", tabPanel2);
    tabbedpane.addTab("tab3", tabPanel3);

    getContentPane().add(tabbedpane, BorderLayout.CENTER);
    getContentPane().add(dispPanel, BorderLayout.PAGE_END);
  }

  public void stateChanged(ChangeEvent e) {
    int index = tabbedpane.getSelectedIndex();

    indexLabel.setText("Selected Index : " + index);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JTabbedPaneで選択されているタブのインデックスを取得する

今回のサンプルではタブが切り替わった時に発生するChangeEventを使い、選択されているタブが変わった時に新しく選択されたタブのインデックス番号を取得して画面下部に表示します。2番目のタブや3番目のタブを選択してみて下さい。

JTabbedPaneで選択されているタブのインデックスを取得する

JTabbedPaneで選択されているタブのインデックスを取得する

選択されたタブのインデックス番号が取得出来ていることが確認できます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)