2012-11-28 58 views
0

當我試圖繪製一個多邊形時,我得到一個NullPointerException。 這是我正在試圖做到這一點:NullPointerException當試圖繪製一個多邊形

Roi roi = imp.getRoi(); 
Polygon p = roi.getPolygon(); 
Graphics g=null; 
g.drawPolygon(p.xpoints, p.ypoints, p.npoints); 

請建議我怎麼能解決這個問題。

+7

Graphics g = null;如果您在g上調用方法,則會導致NPE。 –

+1

你應該看看關於在java中繪圖的一些教程。一個關鍵點是如何調用代碼並提供一個Graphics實例。 –

+1

仍然與g = null – david

回答

1

您沒有使用正確的圖形對象。這應該在JComponent的paintComponent(...)方法中完成,並且您應該使用由JVM傳入的Graphics對象。或者使用通過createGraphics()從它獲得的Graphics2D對象在BufferedImage中繪製它。

關於您的編輯:yikes!

這是保證每次都會拋出NPE。

Bar bar = null 
bar.someMethod(); 
+0

你能給我一些關於這個的教程嗎?請 – david

+0

@ user1620554:標準[Oracle教程](http://docs.oracle.com/javase/tutorial/reallybigindex.html)有一個Swing部分,實際上是關於執行自定義繪畫的特定部分。 –

+0

public void paint(Graphics g){Graphics:Graphics2D g2 =(Graphics2D)g; ... } 我嘗試過,但我不知道如何在我的主 – david