java Swing中,Grahpics获取画笔之后画笔无法无法使用问题

public class Test04 {

BufferedImage image = new BufferedImage(535,536,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();   //获取画笔

private class MyPanel extends Canvas{
    public void paint(Graphics g){
        g.drawImage(image,0,0,null);     // 这里绘制图片
    
    }
}


public void init(){

    MyPanel myPanel = new MyPanel();
    myPanel.setSize(535,536);
    JFrame jFrame = new JFrame("新的窗口");
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.pack();


    try {
        image = ImageIO.read(new File("src/image1/board.jpg"));//棋盘                      
    } catch (IOException e) {
        e.printStackTrace();
    }

    g.setColor(Color.GREEN);
    g.drawLine(0,0,500,1000);             //这里画的线在图片上无法显示


    jFrame.add(myPanel);
    jFrame.setSize(1000,1000);
    jFrame.setVisible(true);     
}


public static void main(String[] args) {
    new Test04().init();
}

}

无法显示画出的直线

img

将获取画笔的代码移到这里之后

img

img


可以显示画出的线

不需要继承Canvas,直接用JPanel就可以了。