0
我制作了一个窗口并使用双缓冲区对其进行绘制。问题是,如果我在y = 0处使用Graphics2D绘制一些文本,它不会出现在屏幕上。我试图将BufferedImage渲染下来,但这并没有帮助,并在窗口顶部留下白色区域。在Graphics2D上绘图文本
提前感谢
我制作了一个窗口并使用双缓冲区对其进行绘制。问题是,如果我在y = 0处使用Graphics2D绘制一些文本,它不会出现在屏幕上。我试图将BufferedImage渲染下来,但这并没有帮助,并在窗口顶部留下白色区域。在Graphics2D上绘图文本
提前感谢
这是因为如何text is measuredg.drawString("Hello", 0, 0);
将开始(0,0)
绘制的第一个字母"H"
基线的字符串。这意味着在(x,0)
处的绘图总是至少有一些文字不在视图中。如果你想要的文字与它在(x,y)
右上角被渲染,你将不得不衡量字体的高度,并用它作为偏移
public static void drawStringTopLeft(Graphics2D g, String s, int x, int y) {
FontMetrics fm = g.getFontMetrics(g.getFont());
int yOffset = fm.getAscent();
g.drawString(s, x, y+yOffset);
}
THANK YOU SO MUCH !!!!!!!!!! !!!!!!!!!!!!!!!!!!!我完全忘了:) – 2851999
不客气 – arynaq