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

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

JLabelJComponentクラスのサブクラスであり、GUI上にテキストによる説明や情報を表示するためのコンポーネントです。JLabelは1行の読み取り専用テキスト画像、あるいはテキストと画像の両方を表示できます。また、PropertyChangeListenerインターフェースを明示的に登録して、プロパティの変更を監視することも可能です。

デフォルトでは、JLabelのテキストは水平方向に表示されます。しかし、paintComponent()メソッド内でGraphics2Dクラスのrotate()メソッドを実装することで、JLabelのテキストを自由な角度で回転させて表示できます。

rotate()メソッドの構文

public abstract void rotate(double theta, double x, double y)

パラメータの説明

  • theta: 回転角度(ラジアン単位で指定します)
  • x, y: 回転の原点となる座標

JLabelテキストを回転させるサンプルコード

以下の例では、JLabelを継承したカスタムクラス「RotateLabel」を作成し、paintComponent()メソッドをオーバーライドしてテキストを回転させています。

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

public class RotateJLabelTest extends JFrame {
   public RotateJLabelTest() {
      setTitle("Rotate JLabel");
      JLabel label = new RotateLabel("TutorialsPoint");
      add(label, BorderLayout.CENTER);
      setSize(400, 300);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   private class RotateLabel extends JLabel {
      public RotateLabel(String text) {
         super(text);
         Font font = new Font("Verdana", Font.ITALIC, 10);
         FontMetrics metrics = new FontMetrics(font){};
         Rectangle2D bounds = metrics.getStringBounds(text, null);
         setBounds(0, 0, (int) bounds.getWidth(), (int) bounds.getHeight());
      }
      @Override
      public void paintComponent(Graphics g) {
         Graphics2D gx = (Graphics2D) g;
         gx.rotate(0.6, getX() + getWidth()/2, getY() + getHeight()/2);
         super.paintComponent(g);
      }
   }
   public static void main(String[] args) {
      new RotateJLabelTest();
   }
}

コードのポイント

  • RotateLabelクラス:JLabelを継承した内部クラスで、コンストラクタ内でフォントを設定し、テキストの幅と高さからコンポーネントのサイズを計算しています。
  • paintComponent()のオーバーライド:GraphicsオブジェクトをGraphics2Dにキャストし、rotate()メソッドを使ってコンポーネントの中心を基準に0.6ラジアン(約34度)回転させています。
  • super.paintComponent(g)の呼び出し:回転を適用した後に親クラスの描画処理を呼び出すことで、テキストが回転した状態で描画されます。

実行結果

このプログラムを実行すると、「TutorialsPoint」というテキストが斜めに傾いた状態で画面中央に表示されます。

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

  1. Javaで編集可能なJLabelを実装する方法

    JLabelとはJLabelクラスはJComponentクラスを継承しており、JLabelのオブジェクトを使用することで、GUI上にテキストによる説明や情報を表示できます。JLabelの主な特徴は以下のとおりです。1行の読み取り専用テキスト、画像、またはその両方を表示できる重要なメソッドとして、setText()、setIcon()、setBackground()、setOpaque()、setHorizontalAlignment()、setVerticalAlignment()などが用意されているPropertyChangeListenerインターフェースを明示的に登録して、プロパティの変

  2. JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説

    JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー