我正在擴展JPanel來創建自定義繪圖面板,但得到一個NullPointerException並且無法解決原因。我已經刪除了代碼,直到它完全顯示爲止,但錯誤仍然存在。從那裏我稱之爲setRenderingHints
方法行NullPointerException在自定義JPanel中使用Graphics2D
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
:
package testdraw;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JPanel;
public class DrawPanel extends JPanel {
public DrawPanel() {
this.Draw();
}
public void Draw(){
Graphics g = this.getGraphics();
Graphics2D g2d = (Graphics2D) g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_SPEED);
g2d.setRenderingHints(rh);
}
}
,我發現了錯誤。任何幫助讚賞。
謝謝,我應該猜到了。 – VirtualMe 2010-03-10 16:20:40
對不起,但它不僅是一個在構造函數中調用繪製的問題。相反,您的繪圖方法不符合Swing框架行爲。查看我的答案瞭解更多詳情。 – Riduidel 2010-03-10 16:30:20
@Riduidel,我說的非常準確。我沒有告訴他*他應該從哪裏調用他的Draw()方法,但是這並不會讓他錯誤地告訴他不要從構造函數中調用它。 – 2010-03-10 17:03:22