タブを選択する

広告

プログラム中から指定のタグを選択する方法を確認します。JTabbedPaneクラスで用意されている「setSelectedIndex」メソッドを使います。

タブ区画の選択インデックスを設定します。インデックスは、有効なタブイン
デックスまたは -1 を設定する必要があります。 -1 を設定すると、タブが選
択されていないこと示します。 また、インデックスは、タブ区画にタブがない
場合にも使用できます。タブ区画が 1 つ以上のタブを保持するときに値 -1 が
指定される場合は、その結果は実装の定義によって決まります。

パラメータ:
  index - 選択されるインデックス 
例外: 
  IndexOutOfBoundsException - インデックスが範囲外の場合
    (index < 0 || index >= タブの総数)

引数に選択したいタブのインデックスを指定します。インデックスはタブが追加された順に割り振られた番号で最初のタブのインデックスは「0」となります。存在しないインデックスを指定すると例外が発生します。

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

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

tabbedpane.setSelectedIndex(0);

サンプルプログラム

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

JTabbedPaneTest12.java

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

public class JTabbedPaneTest12 extends JFrame implements ActionListener{

  JTabbedPane tabbedpane;
  JTextField indexText;

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

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

  JTabbedPaneTest12(){
    tabbedpane = new JTabbedPane();

    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);

    indexText = new JTextField("", 2);
    JButton selectButton = new JButton("select");
    selectButton.addActionListener(this);

    JPanel actionPanel = new JPanel();
    actionPanel.add(indexText);
    actionPanel.add(selectButton);

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

  public void actionPerformed(ActionEvent e){
    int index = Integer.parseInt(indexText.getText());
    tabbedpane.setSelectedIndex(index);
  }
}

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

JTabbedPaneでタブが選択する

画面下部のテキストボックスに選択したいタブのインデックス番号を入力してから「select」ボタンをクリックして下さい。

JTabbedPaneでタブが選択する

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。