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