HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

JavaでHTMLを使ってJLabelに複数行のテキストを表示する方法

SwingのJLabelは通常、単一行のテキストしか表示できませんが、HTMLタグを利用することで簡単に複数行のテキストを表示できます。ポイントは、ラベルのテキストを<html>タグで囲むことです。HTMLが有効になると、<br>タグによる改行や、<strong>などの書式設定も自由に使えるようになります。

複数行テキストの基本的な設定方法

JLabelにHTMLを設定して複数行のテキストを保持するには、次のように記述します。

JLabel label = new JLabel("<html><strong>Line1<br>Line2</strong></html>", JLabel.LEFT);

このコードを実行すると、JLabelには以下のように2行のテキストが表示されます。

Line1
Line2

<br>タグが改行として機能し、1つのJLabel内で複数行を実現できています。また、第2引数のJLabel.LEFTでテキストを左揃えに指定しています。

サンプルコード

以下は、HTMLを使用して複数行のテキストを表示するJLabelを作成する完全な例です。

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

public class SwingDemo {
    public static void main(String args[]) {
        JFrame frame = new JFrame("Label Example");
        JLabel label;
        label = new JLabel("<html><strong>" + "Line1<br>Line2</strong></html>", JLabel.LEFT);
        label.setBounds(100, 100, 100, 30);
        label.setFont(new Font("Verdana", Font.PLAIN, 13));
        frame.add(label);
        frame.setSize(500, 300);
        frame.setLayout(null);
        frame.setVisible(true);
    }
}

コードの解説

  • HTMLタグの埋め込み: <html>タグで文字列を囲むことで、SwingコンポーネントのHTMLレンダリング機能が有効になります。
  • 改行処理: <br>タグを挿入することで、行間を自由に制御できます。
  • フォント設定: setFont()メソッドを使い、Verdanaフォント(サイズ13)を適用しています。
  • 配置指定: setBounds()でラベルの位置とサイズを設定し、setLayout(null)による絶対配置を採用しています。

実行結果

上記のプログラムを実行すると、ウィンドウ内に「Line1」と「Line2」が上下2行で表示されたラベルが確認できます。

まとめ

JLabelで複数行テキストを扱いたい場合は、HTMLタグを活用するのが最も手軽な方法です。<br>以外にも、色を変える<font color="red">や斜体の<i>など、さまざまなHTMLタグがSwingコンポーネントでサポートされているため、表現力豊かなUIを簡単に構築できます。

  1. JavaでJLabelのテキストを回転させる方法をわかりやすく解説

    JLabelはJComponentクラスのサブクラスであり、GUI上にテキストによる説明や情報を表示するためのコンポーネントです。JLabelは1行の読み取り専用テキスト、画像、あるいはテキストと画像の両方を表示できます。また、PropertyChangeListenerインターフェースを明示的に登録して、プロパティの変更を監視することも可能です。デフォルトでは、JLabelのテキストは水平方向に表示されます。しかし、paintComponent()メソッド内でGraphics2Dクラスのrotate()メソッドを実装することで、JLabelのテキストを自由な角度で回転させて表示できます。ro

  2. JavaのJLabelで動くテキスト(スクロール表示)を実装する方法

    JLabelとはJLabelはJComponentクラスのサブクラスであり、GUI上にテキストによる説明や情報を表示するための軽量コンポーネントです。JLabelは、1行の読み取り専用テキスト、画像、あるいはその両方を表示することができます。また、PropertyChangeListenerインターフェースを明示的に登録して、プロパティの変更を監視することも可能です。Timerクラスを使った移動テキストの仕組みJLabel内で動くテキスト(スクロール表示)を実装したい場合は、javax.swing.Timerクラスを利用します。Timerクラスのコンストラクタには、更新間隔を表す速度(ミリ秒単