Java 如何使导入的MouseMotionListener再次工作?

Java 如何使导入的MouseMotionListener再次工作?,java,swing,jframe,jpanel,mousemotionlistener,Java,Swing,Jframe,Jpanel,Mousemotionlistener,我用鼠标监听器、鼠标运动监听器和滚动监听器制作了一个JPanel。我有一个JFrame在JPanel之间切换,如下所示: //tile is a JPanel //"this" is a JFrame tile.removeAll(); tile=tree.getCurrentNode().getContent().panel; this.add(tile); this.revali

我用鼠标监听器、鼠标运动监听器和滚动监听器制作了一个JPanel。我有一个JFrame在JPanel之间切换,如下所示:

    //tile is a JPanel
    //"this" is a JFrame

            tile.removeAll();
            tile=tree.getCurrentNode().getContent().panel;
            this.add(tile);
            this.revalidate();
            tile.requestFocus();

现在,当我把旧的JPanel换成有鼠标侦听器的JPanel时,一些奇怪的事情开始发生了。鼠标侦听器和滚动侦听器仍然可以工作,但不再调用鼠标运动侦听器。在JPanel中尝试getMousePosition时,我甚至会遇到一个nullpointer异常。

请考虑提供一个示例来说明您的问题。这将减少混乱和更好的响应我会看看我能做些什么,当前的项目太大了,无法进入。你能提供添加侦听器和使用它们的代码吗?我知道我的问题是,mousemotionlistener实际上在工作,但getMousePosition不工作,所以我这样修改它:`public void mouseMovedMouseEvent e{mousePosition=new Point intMouseInfo.getPointerInfo.getLocation.getX-this.getLocationOnScreen.x,intMouseInfo.getPointerInfo.getLocation.getY-this.getLocationOnScreen.y;`使用如中所示的。