Reputation: 366
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
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