タブに関するヒント(Tip)を表示する

広告

タブにマウスをあわせた時にタブに関するヒントを表示させる方法を確認します。ヒントを表示するにはJTabbedPaneクラスで用意されている「addTab」メソッドを使います。今まで使ってきた「addTab」メソッドとは引数が異なっています。

title または icon、あるいはその両方 (どちらかは null でもかまわない) に
よって表される component および tip を追加します。insertTab のカバーメ
ソッドです。

パラメータ:
  title - このタブで表示されるタイトル
  icon - このタブで表示されるアイコン
  component - このタブをクリックしたときに表示されるコンポーネント
  tip - このタブで表示されるツールヒント

1番目の引数にタブに表示されるタイトルをString型の値で指定します。2番目の引数には表示したい画像を表すIconインターフェースを実装したクラスのオブジェクトを指定します。3番目の引数にタブが選択された時に表示されるコンポーネントを指定します。

4番目の引数にタブにマウスを合わせた時に表示されるヒントをString型の値で指定します。

なお、このメソッドでヒントを引数に指定する場合に画像を引数に指定する必要がありますが、画像が不必要な場合には「null」を指定して下さい。

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

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

指定のインデックスのタブのヒントを設定する

タブを追加した後で、タブのインデックスを指定してヒントを設定する方法を確認します。ヒントを設定するにはJTabbpedPaneクラスで用意されている「setToolTipTextAt」メソッドを使います。

index のツールヒントのテキストを toolTipText に設定します。 null にする
こともできます。そのインデックスにタブがない場合は内部例外がスローされ
ます。

パラメータ:
  index - ツールヒントのテキストを設定するタブのインデックス
  toolTipText - タブに表示されるツールヒントのテキスト 
例外: 
  IndexOutOfBoundsException - インデックスが範囲外の場合
    (index < 0 || index >= タブの総数)

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

2番目の引数には表示したいヒントをString型の値で指定します。

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

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

tabbedpane.setToolTipTextAt(0, "button tab");

サンプルプログラム

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

JTabbedPaneTest5.java

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

public class JTabbedPaneTest5 extends JFrame{


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

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

  JTabbedPaneTest5(){
    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", null, tabPanel1, "button tab");
    tabbedpane.addTab("tab2", tabPanel2);
    tabbedpane.addTab("tab3", tabPanel3);

    tabbedpane.setToolTipTextAt(1, "label & text tab");;
    tabbedpane.setToolTipTextAt(2, "button tab");;

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

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

JTabbedPaneでタブにヒントを表示する

タブにマウスを合わせると、タブに設定されたヒントが表示されます。

JTabbedPaneでタブにヒントを表示する

JTabbedPaneでタブにヒントを表示する

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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