我正在扩展JPanel以制作自定义绘图面板,但是却收到了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);
    }
}


我收到错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


从我调用setRenderingHints方法的那一行开始。任何帮助表示赞赏。

最佳答案

您正在构造函数中调用“绘图”。在调用getGraphics之前,应等待其完全构建并可见。

10-06 07:06