タブの表示位置を設定する

広告

デフォルトではタブはタブペインの上部に表示されますが、別の場所に表示されるように設定することも可能です。タブの表示位置を設定するにはコンストラクタで指定する方法とメソッドを使って設定する方法があります。

まずコンストラクタで指定する方法を確認します。

JTabbedPane.TOP、JTabbedPane.BOTTOM、JTabbedPane.LEFT、JTabbedPane.RIGHT 
のうちのどれかで指定されたタブ配置を使用して、空の TabbedPane を作成し
ます。

パラメータ:
  tabPlacement - コンテンツに対するタブの配置

タブが表示される位置をint型の値で指定します。指定できる値は次の4つです。

タブの表示位置
JTabbedPane.TOP
JTabbedPane.BOTTOM
JTabbedPane.LEFT
JTabbedPane.RIGHT

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

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

メソッドで指定する

次に一度作成したJTabbedPaneクラスのオブジェクトに対してメソッドを使ってタブの表示位置を設定する方法を確認します。JTabbedPaneクラスで用意されている「setTabPlacement」メソッドを使います。

タブ区画のタブの配置を設定します。次に有効な値を示します。

  JTabbedPane.TOP 
  JTabbedPane.BOTTOM 
  JTabbedPane.LEFT 
  JTabbedPane.RIGHT 

デフォルト値が設定されていない場合は、SwingConstants.TOP

パラメータ:
  tabPlacement - コンテンツに対するタブの配置 
例外: 
  IllegalArgumentException - タブの配置が前述の正当な値の いずれでもな
    い場合

タブが表示される位置をint型の値で指定します。指定できる値はコンストラクタの場合と同じです。

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

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

tabbedpane.setTabPlacement(JTabbedPane.BOTTOM);

サンプルプログラム

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

JTabbedPaneTest8.java

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

public class JTabbedPaneTest8 extends JFrame{

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

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

  JTabbedPaneTest8(){
    JTabbedPane 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);

    tabbedpane.setTabPlacement(JTabbedPane.BOTTOM);

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

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

JTabbedPaneでタブの表示位置を設定する

なおソースコードは省略しますがタブの表示位置を「左」及び「右」にした場合は次のようになります。

JTabbedPaneでタブの表示位置を設定する

JTabbedPaneでタブの表示位置を設定する

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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