Java MouseAdapter没有响应

时间:2015-07-10 13:37:07

标签: java swing

我为我的JPanel编写了一个MouseAdapter,但它表现得很奇怪,这里的代码本身包含了从文档中覆盖的所有可能操作。

private class MAdapter extends MouseAdapter {
        @Override
        public void mousePressed(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseReleased(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseClicked(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseEntered(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseExited(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseWheelMoved(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseMoved(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }

        @Override
        public void mouseDragged(MouseEvent e){
            System.out.println(e.getX()+""+e.getY());
        }
    }

问题是:它似乎只对作为前五个的MouseListener操作作出反应,它不会对MouseMotionListener操作(最后两个)做出反应,而MouseWheelMoved已显示为灰色,并表示它不会覆盖任何超类的方法。

1 个答案:

答案 0 :(得分:4)

MouseAdapterMouseListenerMosueWheelListenerMouseMotionListener

的无操作(空)实现

它旨在让您的生活更轻松,因为您不需要实现这些界面定义的每个方法,因此您可以获得mouseClicked事件

您需要单独注册每种类型的实施

MAdapter ma = new MAdapter();
addMouseListener(ma);
addMouseMotionListener(ma);
addMouseWheelListener(ma);