如何旋转Swing文本?

有没有办法旋转Swing文本,例如在JLabel中以0度到360度(或-180到180度)之间以1度的步长旋转?

是。 看看Graphics2D.rotate()。 对于JLabel,我认为你可以覆盖paintComponent()方法来调用rotate(x),然后调用现有的paintComponent(),然后调用rotate(-x)。 例如

protected void paintComponent(Graphics g) { Graphics2D g2 = ( Graphics2D )g; g2.rotate(theta); super.paintComponent(g2); g2.rotate(-theta); } 

我没试过这个。 您可能需要添加偏移量,请参阅Graphics2D.rotate(double theta,double x,double y)

我不相信Swing明确支持这一点。
但是,您可以将文本转换为图像,然后使用AffineTransform类进行旋转。

下面是一些示例代码 ,显然是从“Swing Hacks”一书中提取的,用于向后编写文本。 您可以轻松地修改它以旋转文本,但您必须为动画效果添加一些代码。

不是JLabel而是JEditorPane内容http://java-sl.com/vertical.html