如何在 Java 中旋转 JLabel 文本?
awtjavaobject oriented programmingprogrammingswing
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(); } }