关于Graphics 2D drawString的问题

时间:2014-07-13 22:20:08

标签: java swing graphics2d

我已经编写了自己的饼图类,并决定添加一个displayValues(),它基本上显示值,其中一个参数是Direction,它是我的ENUM,由LEFT,RIGHT,TOP,BOTTOM组成。

基本上drawString将根据Direction绘制。另一个参数也是字符串和饼图之间的填充。

一切进展顺利但是当我想在方向== LEFT时创建填充时问题出现了。

问题是我无法设置drawString(String str,getX() - 10,int y),因为字符串仍会进入图表内。

我希望能够保持从右到左的填充,而不是通常从左到右。这可能吗?

这是我想要的: enter image description here

1 个答案:

答案 0 :(得分:1)

如果g是您的Graphics对象,请使用

int textWidth = g.getFontMetrics().stringWidth(str)

获取要绘制的文本的宽度。然后,您可以将getX() - 10替换为getX() - textWidth - 10,这将根据需要定位文本,使其末尾位于getX()左侧10个像素处。