protected void processMouseEvent(MouseEvent e) { MouseEvent transformedEvent = transformMouseEvent(e); switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: if (mouseDraggedComponent == null || mouseCurrentComponent == mouseDraggedComponent) { dispatchMouseEvent(transformedEvent); } break; case MouseEvent.MOUSE_EXITED: if (mouseEnteredComponent != null) { dispatchMouseEvent( createEnterExitEvent(mouseEnteredComponent, MouseEvent.MOUSE_EXITED, e)); mouseEnteredComponent = null; } break; case MouseEvent.MOUSE_RELEASED: if (mouseDraggedComponent != null && e.getButton() == MouseEvent.BUTTON1) { transformedEvent.setSource(mouseDraggedComponent); mouseDraggedComponent = null; } dispatchMouseEvent(transformedEvent); break; default: dispatchMouseEvent(transformedEvent); } super.processMouseEvent(e); }
protected void processMouseEvent(MouseEvent e) { super.processMouseEvent(e); if (!isShowing()) { return; } switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: setCursor(getResizeCursor()); break; case MouseEvent.MOUSE_EXITED: if (!myDragging) { setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } break; case MouseEvent.MOUSE_PRESSED: if (isInside(e.getPoint())) { myWasPressedOnMe = true; myGlassPane.setCursor(getResizeCursor(), myListener); e.consume(); } else { myWasPressedOnMe = false; } break; case MouseEvent.MOUSE_RELEASED: if (myWasPressedOnMe) { e.consume(); } if (isInside(e.getPoint())) { myGlassPane.setCursor(getResizeCursor(), myListener); } myWasPressedOnMe = false; myDragging = false; myPoint = null; break; case MouseEvent.MOUSE_CLICKED: if (e.getClickCount() == 2) { center(); } break; } }