旋转JLabel上的文本而不旋转边框

时间:2016-10-03 06:43:12

标签: java swing

我想将JComponent上的文字旋转到垂直方向,JComponent还包含用paintComponent方法绘制的边框,我不想旋转该边框,仅文本。

我已经使用了graphics2D rotate函数,但它也会旋转组件边框,当组件为矩形时会失败。

请建议我任何approch只旋转文字。 这是我目前的JComponent:

enter image description here

我想要的是什么:

enter image description here

实际上它并不重复。我已使用下面的代码:

  Graphics2D g2 = (Graphics2D) g;
                g2.rotate(Math.PI / 4, bi.getWidth() / 2, bi.getHeight() / 2);

但问题是,它还会旋转边框,我不想要它。

所有给出的解决方案都不起作用,它也会旋转边框。我不想旋转边框,只需要文字。 这是我以某个角度旋转后获得的: enter image description here

1 个答案:

答案 0 :(得分:-1)

请记住Graphics对象中有很多状态。这包括当前的转型。您当前的代码会修改状态,但不会将其恢复到原始状态。

绘制图像后,您应该“撤消”旋转。这可以通过在另一个方向上旋转或通过专门创建新的图形对象(g2.create())来绘制旋转的内容来完成。如果您执行后者,请确保dispose()您创建的临时图形对象。