seMikel
seMikel

Reputation: 366

Java MouseAdapter not responding

I wrote a MouseAdapter for my JPanel but it is acting strange, here is the code itself with all possible actions to override from the docs.

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());
        }
    }

Problem is: it seems to only react to MouseListener actions which are the first five, it doesn't react to MouseMotionListener actions (the last 2), while the MouseWheelMoved has been grayed out and says that it doesn't override any method of the superclass.

Upvotes: 0

Views: 122

Answers (1)

MadProgrammer
MadProgrammer

Reputation: 347184

MouseAdapter is a no-op (empty) implementation of MouseListener, MosueWheelListener and MouseMotionListener

It's designed to make your life easier, as you don't need to implement every method defined by these interfaces just so you can get a mouseClicked event

You will need to register your implementation with each type individually

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

Upvotes: 4

Related Questions