【问题标题】:Rotate text present on JLabel without rotating border旋转 JLabel 上的文本而不旋转边框
【发布时间】:2016-10-03 06:43:11
【问题描述】:

我想将我的JComponent 上的文本旋转到垂直,JComponent 还包含用paintComponent 方法绘制的边框,我不想旋转那个边框,只有文本。

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

请向我建议任何仅旋转文本的方法。 这是目前我的 JComponent :

我想要什么:

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

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

但问题是,它也会旋转边框,我不想那样。

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

【问题讨论】:

  • 无需编码,您可以轻松旋转照片,然后在代码中使用它
  • @Mohsen_Fatemi,实际上是文本,而不是照片,这是我的带有白色边框的 JComponent,我在其中绘制不同的文本
  • 嗨@kevto,实际上我已经提到了那个例子,但这不是我需要的。是否有一些方法,我只能旋转 JComponent 的某些部分?
  • 我想这就是你想要的:stackoverflow.com/questions/14324460/…
  • @Mohsen_Fatemi:您好,感谢您的评论,但您提供的链接对我也不起作用。其中给出的方法也可以旋转我的 jcomponent 的边框。

标签: java swing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多