我有我需要在屏幕上繪製的東西,但這需要字體指標才能正確繪製。我也需要使用repaint()或其他的東西來繪製到屏幕上。重繪()FontMetrics
如果我有一個paintComponent(Graphics)
方法,我可以通過g.getFontMetrics(g.getFont())
正確檢索字體指標。問題是,我不能說它畫的是自我。它只會在發生某些事情時發生,例如正在調整組件的大小。
然後,如果我只使用正常的paint(Graphics)
,我可以使用repaint()
來繪製我想要的,但調用g.getFontMetrics(g.getFont())
不會返回正確的值。有任何想法嗎?
repaint();//I need to call repaint() or something similar to draw to the screen when I want it to
public void paint(Graphics g){
FontMetrics metrics = g.getFontMetrics(g.getFont());//Returns different metrics than that of paintComponent(Graphics)
}
public void paintComponent(Graphics g){
FontMetrics metrics = g.getFontMetrics(g.getFont());//Returns different metrics than that of paint(Graphics)
}
你想畫什麼?東西像一個長方形,裏面有文字? – 2014-10-01 11:48:58
http://stackoverflow.com/questions/2753514/java-friendlier-way-to-get-an-instance-of-fontmetrics有幫助嗎? – DavidPostill 2014-10-01 11:50:06
另外我會將字體作爲一個變量存儲在你的類中,而不是覆蓋痛苦() – 2014-10-01 11:51:46