ラベルの作成とラベルに表示する文字列の設定

ラベルを作成するには JLabel クラスを使用します。ここでは JLabel クラスの定義やコンストラクタについて確認します。またラベルに表示される文字列をあとから設定する方法も解説します。

(Last modified: )

JLabelクラスの定義

JLabel クラスは次のように定義されています。

java.lang.Object
  java.awt.Component
    java.awt.Container
      javax.swing.JComponent
        javax.swing.JLabel

public class JLabel extends JComponent implements SwingConstants, Accessible

ラベルはコンポーネントの親クラスである JComponent クラスのサブクラスとなっています。

JLabelクラスのコンストラクタ

JLabel クラスをを利用するにはコンストラクタを使って JLabel クラスのオブジェクトを作成します。次のようなコンストラクタが用意されています。

public JLabel()

JLabelのインスタンスを、イメージなしの空のタイトル文字列で作成します。 ラベルは、表示領域内で垂直方向に中央揃えされます。 ラベルの内容が設定されると、ラベルは表示領域のリーディング・エッジに表示されます。

public JLabel(String text)

JLabelのインスタンスを、指定されたテキストで作成します。 ラベルは、表示領域のリーディング・エッジにそろえられ、垂直方向に中央揃えされます。

パラメータ:
text - ラベルに表示されるテキスト。

public JLabel(String text, int horizontalAlignment)

JLabelのインスタンスを、指定されたテキストと水平方向の配置方法で作成します。 ラベルは、表示領域内で垂直方向に中央揃えされます。

パラメータ:
text - ラベルに表示されるテキスト。
horizontalAlignment - SwingConstantsで定義されている定数LEFT、CENTER、RIGHT、LEADING、またはTRAILINGのうちの1つ。

public JLabel(String text, Icon icon, int horizontalAlignment)

指定されたテキスト、イメージ、および水平方向の配置方法で、JLabelのインスタンスを作成します。ラベルは、表示領域内で垂直方向に中央揃えされます。 テキストはイメージのトレーリング・エッジに表示されます。

パラメータ:
text - ラベルに表示されるテキスト。
icon - ラベルに表示されるイメージ。
horizontalAlignment - SwingConstantsで定義されている定数LEFT、CENTER、RIGHT、LEADING、またはTRAILINGのうちの1つ。

public JLabel(Icon image)

JLabelのインスタンスを、指定されたイメージで作成します。 ラベルは、表示領域内で垂直方向と水平方向に中央揃えされます。

パラメータ:
image - ラベルに表示されるイメージ。

public JLabel(Icon image, int horizontalAlignment)

JLabelのインスタンスを、指定されたイメージと水平方向の配置方法で作成します。 ラベルは、表示領域内で垂直方向に中央揃えされます。

パラメータ:
image - ラベルに表示されるイメージ。
horizontalAlignment - SwingConstantsで定義されている定数LEFT、CENTER、RIGHT、LEADING、またはTRAILINGのうちの1つ。

ラベルには文字列や画像を表示することができ、コンストラクも何を表示するのかに合わせていくつか用意されています。文字や画像を表示せずに空のラベルを作成する場合は JLabel() を使用し、表示する文字列を指定してラベルを作成する場合は JLabel(String text) を使用します。

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

JLabel label1 = new JLabel();
JLabel label2 = new JLabel("MyLabel");
サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 Sample.java という名前で保存します。

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;

class Sample extends JFrame{
  public static void main(String args[]){
    Sample frame = new Sample("MyTitle");
    frame.setVisible(true);
  }

  Sample(String title){
    setTitle(title);
    setBounds(100, 100, 728, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label = new JLabel("Hello!");

    JPanel p = new JPanel();
    p.add(label);

    add(p, BorderLayout.NORTH);
  }
}

次のようにコンパイルを行います。

javac Sample.java

コンパイルが終わりましたら実行します。

java Sample

"Hello!" という文字列が表示されたラベルが表示されました。

JLabelクラスのコンストラクタ(2)

ラベルに表示される文字列を設定する

ラベルは作成したあとで別の文字列を設定することができます。ラベルに表示される文字列を設定するには JLabel クラスで用意されている setText メソッドを使います。

public void setText(String text)

このコンポーネントが表示する単一行のテキストを定義する。 このコンポーネントが表示する1行のテキストを定義します。
このプロパティのデフォルト値はnullです。
これはJavaBeansバウンド・プロパティです。

パラメータ:
text - このコンポーネントが表示するテキストの1行

引数にはラベルに表示される文字列を String クラスのオブジェクトを使って指定します。

実際の使い方は次のようになります。空のラベルに文字列を設定したり、既に文字列が設定されているラベルの文字列を変更したりすることができます。

JLabel label1 = new JLabel();
labe1.setText("MyLabel");

JLabel label2 = new JLabel("OldLabelText");
label2.setText("NewLabelText");
サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 Sample.java という名前で保存します。

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;

class Sample extends JFrame{
  public static void main(String args[]){
    Sample frame = new Sample("MyTitle");
    frame.setVisible(true);
  }

  Sample(String title){
    setTitle(title);
    setBounds(100, 100, 728, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label1 = new JLabel();
    label1.setText("Hello!");

    JLabel label2 = new JLabel("bye!");
    label2.setText("Bye!");

    JPanel p = new JPanel();
    p.add(label1);
    p.add(label2);

    add(p, BorderLayout.NORTH);
  }
}

次のようにコンパイルを行います。

javac Sample.java

コンパイルが終わりましたら実行します。

java Sample

"Hello!" という文字列が表示されたラベル、"Bye!" という文字列が表示されたラベルがそれぞれ表示されました。それぞれ setText メソッドを使って表示される文字列を設定しています。

ラベルに表示される文字列を設定する(1)

-- --

JLabel クラスの定義やコンストラクタについて解説し、またラベルに表示される文字列をあとから設定する方法も解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。