有没有办法旋转Swing文本,例如在JLabel中以0度到360度(或-180到180度)之间以1度的步长旋转?
答案 0 :(得分:9)
是。看看Graphics2D.rotate()。对于JLabel,我认为你可以覆盖paintComponent()方法来调用rotate(x),然后调用现有的paintComponent(),然后调用rotate(-x)。 e.g。
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)
答案 1 :(得分:2)
我不相信Swing明确支持这一点 但是,您可以将文本转换为图像,然后使用AffineTransform类旋转它。
以下是一些example code,显然是从“Swing Hacks”一书中提取的,用于向后编写文本。您可以轻松地修改它以旋转文本,但您必须为动画效果添加一些代码。
答案 2 :(得分:2)
不是JLabel而是JEditorPane内容http://java-sl.com/vertical.html