我們在 Java 中如何旋轉 JLabel 文字?


JLabel JComponent 類的子類,JLabel 物件為 GUI 提供文字說明或資訊。JLabel 可以顯示一行只讀文字影像或者文字影像兩者。JLabel 可以顯式生成一個 PropertyChangeListener 介面。 

在預設情況下,JLabel 可以以水平位置顯示文字,我們可以透過在 paintComponent() 中實現 Graphics2D 類的 rotate() 方法來旋轉 JLabel 文字

語法

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

示例

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();
   }
}

輸出

更新時間: 03-Jul-2020

2K+ 瀏覽量

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.