函数drawString(...)没有任何类似的“锚”,我可以把x和y放在文本的中心。我知道我可以手动完成,而且我也不想使用JTextArea或JLabels。是否有可能以一种明智的方式做到这一点,或无法做到这一点?如何在没有上诉的情况下将文本与Graphics2D对齐?
谢谢。
函数drawString(...)没有任何类似的“锚”,我可以把x和y放在文本的中心。我知道我可以手动完成,而且我也不想使用JTextArea或JLabels。是否有可能以一种明智的方式做到这一点,或无法做到这一点?如何在没有上诉的情况下将文本与Graphics2D对齐?
谢谢。
TextLayout
提供了一些便利。这是一个example。
从Graphics对象获取FontMetrics()
,并使用getStringBounds()
获取文本的图像大小。从那里你可以找出x和y应该是什么来定位文本,无论你想要的。
这是不那么聪明的方式,或者,正如我所说的,“手动”。这是呼吁! :)但没关系,我认为这是唯一不错的解决方案。不管怎么说,还是要谢谢你! – 2011-03-16 02:22:18
@Felipe Micaroni Lalli“这是非常聪明的方式,或者正如我所说的,”手动“。”是的,这是一个可悲的事实,有时程序员实际上需要编程,而不是简单地调用voodoo API。 –
2011-03-16 04:46:34
@Andrew +1 :) 虽然我记得我在MSDOS下编程GUI时,可以指定给定的坐标是在X/Y方向上居中还是左/右对齐。我猜Java曾经让我们以某种方式懒惰:) – Matthieu 2012-12-02 16:59:51