graphics2d 旋转文字
时间: 2023-07-27 09:05:46 浏览: 286
你可以使用 Graphics2D 的 rotate() 方法来旋转文字。以下是一个示例代码:
```java
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
String text = "Hello, World!";
Font font = new Font("Arial", Font.PLAIN, 12);
// 设置字体和颜色
g2d.setFont(font);
g2d.setColor(Color.BLACK);
// 获取文本的宽度和高度
FontMetrics fm = g2d.getFontMetrics();
int textWidth = fm.stringWidth(text);
int textHeight = fm.getHeight();
// 将原点移动到旋转中心位置
int x = getWidth() / 2;
int y = getHeight() / 2;
g2d.translate(x, y);
// 旋转文字
double angle = Math.PI / 4; // 旋转角度
g2d.rotate(angle);
// 在旋转后的位置绘制文本
g2d.drawString(text, -textWidth / 2, textHeight / 2);
// 恢复坐标系
g2d.rotate(-angle);
g2d.translate(-x, -y);
}
```
在这个示例中,我们首先设置了要绘制的文本和字体。然后我们获取文本的宽度和高度,并将原点移动到旋转中心位置。接下来,我们使用 rotate() 方法旋转 Graphics2D 对象,并在旋转后的位置绘制文本。最后,我们恢复坐标系以便后续的绘制。
注意,rotate() 方法接受的是弧度值而不是角度值。如果你想旋转45度,需要将角度值转换成弧度值:angle = Math.PI / 4。
阅读全文