Swing:旋转程式化文本?

时间:2012-05-04 17:52:26

标签: java swing text

我有一个渲染器,我一直用它来绘制一组复杂的东西到Graphics2D上下文,包括使用变换和Graphics2D.drawString()的旋转文本。

现在我想看看绘制风格化文本需要什么,它看起来像是一个泥潭,除了如果你使用HTML,JLabel类本身可以很好地处理它,例如:

<html>a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup></html>

以下哪项是一种更简单的方法,如何开始沿着这条路走下去?

  1. 使用JLabel将文本渲染到我的Graphics2D上下文中,通过让像JLabel这样的组件进行渲染来模拟JTable使用渲染器的方式。 (我尝试过,但我似乎无法让它工作;不确定要调用什么方法 - paint()或paintComponents()? - 并且不确定它是否适用于旋转图形变换)

  2. 解析HTML或其他一些简化的格式化语言(如MATLAB用于图形的TeX子集)并继续使用drawString(),但我自己处理格式。

4 个答案:

答案 0 :(得分:2)

在我看来,你最好的选择是做#1,使用你的JLabel作为渲染器。我确实做了一段时间确认你可以让标准的摆动组件旋转(显示它非常简单 - 事件比较棘手)

答案 1 :(得分:2)

我使用Greg Hinkle's VerticalLabelUI效果很好。

我创建了一个名为VerticalLabel的JLabel子类,它自动在同一个包中获取VerticalLabelUI。甚至可以这样使用JFormDesigner GUI构建器!

答案 2 :(得分:2)

在您的HTML中使用此example似乎有效:

RotatePanel

答案 3 :(得分:1)