Many times you need to extend MouseInputAdapter when the handler doesn't implement any listener interface directly. The following coding may be useful in that case :
Code:
MyListener myListener = new MyListener();
addMouseListener(myListener);
addMouseMotionListener(myListener);
...
private class MyListener extends MouseInputAdapter {
public void mousePressed(MouseEvent me) {
int x = me.getX();
int y = me.getY();
currentRect = new Rectangle(x, y, 0, 0);
updateDrawableRect(getWidth(), getHeight());
repaint();
}
public void mouseDragged(MouseEvent me) {
updateSize(me);
}
public void mouseReleased(MouseEvent me) {
updateSize(me);
}
void updateSize(MouseEvent me) {
int x = me.getX();
int y = me.getY();
currentRect.setSize(x - currentRect.x,
y - currentRect.y);
updateDrawableRect(getWidth(), getHeight());
Rectangle totalRepaint = rectToDraw.union(previouseRectDrawn);
repaint(totalRepaint.x, totalRepaint.y,
totalRepaint.width, totalRepaint.height);
}
}
Bookmarks