我们在 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+ 浏览量

开启您的 职业生涯

完成课程并获得认证

开始
广告