nullexception 错误:java 图形 mouselistener mouseDragged() 不工作

问题描述 投票:0回答:0

我目前有一个程序可以让你通过使用鼠标运动监听器来用鼠标画画。

从鼠标监听器重写的两个方法如下:

 MouseMotionListener myMouseListener = new MouseMotionListener(){
            @Override
            public void mouseDragged(MouseEvent e) {
                Graphics g = getGraphics();
                g.setColor(Color.black);
                g.fillOval(e.getX(), e.getY(), 20, 20);
    
            }

            @Override
            public void mouseMoved(MouseEvent e){ 
                System.out.println("In the canvas.");
            }

        }; 
        sframe.addMouseMotionListener(myMouseListener);

mouseMoved 方法完美地工作,因为当我在“画布”内时它会打印语句。但是,当我拖动鼠标时出现空指针异常:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.awt.Graphics.setColor(java.awt.Color)" because "<local2>" is null
        at SceneFrame$2.mouseDragged(SceneFrame.java:75)

有什么解决办法吗?

这是第 75 行:

 g.setColor(Color.black);

我正在尝试在我的 JFrame (sframe) 中添加鼠标运动侦听器 btw

java swing graphics mouseevent mousemotionlistener
© www.soinside.com 2019 - 2024. All rights reserved.