我们在 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(); } }
输出
广告