繁体   English   中英

如何旋转Swing文本?

[英]How to rotate Swing text?

有没有办法旋转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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM