0
我不确定如何问这个问题,我有一个JPanel子类,它使用paintComponent绘制字符串。我有一个以String string, int xPos, int yPos, Font font
作为参数的类,然后用g.drawString(text.getstring, etc...)
绘制该对象。不同对象的字体大小JPanel
但是,问题是,当构造文本类时,我想根据给定的字符串和字体计算文本的宽度和高度,但要做到这一点的方法似乎是这样做的:
FontMetrics = g.getFontMetrics(Font);
int height = metrics.getHeight();
int width = metrics.stringWidth(string);
问题是g必须是来自paintComponent的'Graphics'对象,但是它不在类的范围内,我应该将它作为参数传递给文本类吗?还是有更好的方法来做到这一点?
在你自己的组件中,使用'java.awt.font.TextLayout'。 – trashgod 2014-11-24 14:52:08