要垂直绘制文本/字符串,我们需要对Graphics2D对象进行转换。首先,创建方法的实例AffineTransform并使用setToRotation()方法设置旋转角度。然后将此转换对象传递给g2.setTransform()方法。
package org.nhooo.example.geom; import javax.swing.*; import java.awt.*; import java.awt.geom.AffineTransform; public class DrawVerticalText extends JPanel { @Override public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; // 定义渲染提示,字体名称,字体样式和字体大小 g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setFont(new Font("Segoe Script", Font.BOLD, 22)); g2.setColor(Color.RED); // 旋转90度以制作垂直文字 AffineTransform at = new AffineTransform(); at.setToRotation(Math.toRadians(90), 80, 100); g2.setTransform(at); g2.drawString("This is a vertical text", 10, 10); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Draw Vertical Text Demo"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(new DrawVerticalText()); frame.pack(); frame.setSize(420, 350); frame.setVisible(true); } }
运行该代码段,您将看到以下屏幕: