使用Java Graphics 2D对齐文本

6

有人能告诉我如何在Java 2d中将文本右对齐吗?

这是代码,它绘制了一列文本,自然地向左对齐。

Font yFont = new Font("Arial", Font.BOLD, 13);

interval = 0;

g2d.setFont(yFont);
for (String l : binLabels) {
     g2d.drawString(l, 0, (135 + interval));
     interval = interval + 15;
}

驱使我发疯。谢谢大家。
慢慢来,这种类型的。
1个回答

13

在您的paintComponent()方法中,您可以使用FontMetrics获取您想要绘制的字符串的宽度:

FontMetrics fm = getFontMetrics( getFont() );
int width = fm.stringWidth("your string here");

然后,根据组件的宽度计算开始绘制的偏移量。

问题是你为什么要这样做。你可以使用JLabel并将其对齐方式设置为右对齐。


我必须使用布局管理器来定位JLabel吗? - slotishtype
是的,您应该始终使用布局管理器来创建GUI。 - camickr
问题在于我没有按传统方式开发GUI,所以我正在以不同的方式定位文本。无论如何,感谢您的帮助... - slotishtype

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接