ラベルの作成と文字列の設定

広告

ラベルを作成するにはJLabelクラスを使用します。JLabelクラスは次のように定義されています。

public class JLabel
extends JComponent implements SwingConstants, Accessible
java.lang.Object
 L java.awt.Component
     L java.awt.Container
         L javax.swing.JComponent
             L javax.swing.JLabel

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

JLabelクラスのオブジェクトを作成

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

コンストラクタの概要
JLabel()
JLabel のインスタンスを、イメージなしの空のタイトル文字列で作成します。
JLabel(Icon image)
JLabel のインスタンスを、指定されたイメージで作成します。
JLabel(Icon image, int horizontalAlignment)
JLabel のインスタンスを、指定されたイメージと水平方向の配置方法で作成します。
JLabel(String text)
JLabel のインスタンスを、指定されたテキストで作成します。
JLabel(String text, Icon icon, int horizontalAlignment)
指定されたテキスト、イメージ、および水平方向の配置方法で、JLabel のインスタンスを作成します。
JLabel(String text, int horizontalAlignment)
JLabel のインスタンスを、指定されたテキストと水平方向の配置方法で作成します。

コンストラクタは文字列だけを扱うためのものと画像も扱うためのものでいくつか種類が用意されています。ここでは最も基本となる4番目のコンストラクタを確認します。次のように定義されています。

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

引数にはラベルに表示する文字列をStringクラスのオブジェクトで指定します。ラベルコンポーネントの中でどの位置に文字列が表示さえるのかはデフォルトの設定のままです。

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

JLabel label = new JLabel("ラベル");

もう一つ1番目のコンストラクタも確認しておきます。

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

表示される文字列が空のラベルを作成します。

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

JLabel label = new JLabel();

表示文字列の設定

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

このコンポーネントが表示する単一行のテキストを定義するこのコンポーネントが表示する 1 行の
テキストを定義します。

このプロパティーのデフォルト値は null です。

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

引数にラベルに表示される文字列をStringクラスのオブジェクトで指定して下さい。

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

JLabel label = new JLabel();
label.setText("ラベル");

このようにラベルに表示される文字列は何度でも再設定することができます。

サンプルプログラム

では実際に試してみます。

SSample1_1.java

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

class SSample1_1 extends JFrame{
  public static void main(String args[]){
    SSample1_1 frame = new SSample1_1("タイトル");
    frame.setVisible(true);
  }

  SSample1_1(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    JLabel label1 = new JLabel("今日の天気:");
    JLabel label2 = new JLabel();
    label2.setText("晴れのち曇り");

    p.add(label1);
    p.add(label2);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}

ではコンパイルを行った上で実行してみます。

ラベルの作成と文字列の設定

今回は2つのラベルを作成しました。

( Written by Tatsuo Ikura )