protected void processMouseMotionEvent(MouseEvent e) { MouseEvent transformedEvent = transformMouseEvent(e); if (mouseEnteredComponent == null) { mouseEnteredComponent = mouseCurrentComponent; } switch (e.getID()) { case MouseEvent.MOUSE_MOVED: if (mouseCurrentComponent != mouseEnteredComponent) { dispatchMouseEvent( createEnterExitEvent(mouseEnteredComponent, MouseEvent.MOUSE_EXITED, e)); dispatchMouseEvent( createEnterExitEvent(mouseCurrentComponent, MouseEvent.MOUSE_ENTERED, e)); } break; case MouseEvent.MOUSE_DRAGGED: if (mouseDraggedComponent == null) { mouseDraggedComponent = mouseEnteredComponent; } if (mouseEnteredComponent == mouseDraggedComponent && mouseCurrentComponent != mouseDraggedComponent) { dispatchMouseEvent( createEnterExitEvent(mouseDraggedComponent, MouseEvent.MOUSE_EXITED, e)); } else if (mouseEnteredComponent != mouseDraggedComponent && mouseCurrentComponent == mouseDraggedComponent) { dispatchMouseEvent( createEnterExitEvent(mouseDraggedComponent, MouseEvent.MOUSE_ENTERED, e)); } if (mouseDraggedComponent != null) { transformedEvent.setSource(mouseDraggedComponent); } break; } mouseEnteredComponent = mouseCurrentComponent; // dispatch MouseMotionEvent MouseMotionListener[] mouseMotionListeners = transformedEvent.getComponent().getMouseMotionListeners(); for (MouseMotionListener listener : mouseMotionListeners) { // skip all ToolTipManager's related listeners if (!listener.getClass().getName().startsWith("javax.swing.ToolTipManager")) { switch (transformedEvent.getID()) { case MouseEvent.MOUSE_MOVED: listener.mouseMoved(transformedEvent); break; case MouseEvent.MOUSE_DRAGGED: listener.mouseDragged(transformedEvent); break; default: throw new AssertionError(); } } } super.processMouseMotionEvent(e); }
protected void processMouseMotionEvent(MouseEvent e) { super.processMouseMotionEvent(e); if (!isShowing()) return; if (MouseEvent.MOUSE_DRAGGED == e.getID() && myWasPressedOnMe) { myDragging = true; setCursor(getResizeCursor()); myGlassPane.setCursor(getResizeCursor(), myListener); myPoint = SwingUtilities.convertPoint(this, e.getPoint(), ThreeComponentsSplitter.this); if (getOrientation()) { if (getHeight() > 0 || myDividerZone > 0) { if (myIsFirst) { setFirstSize(Math.max(getMinSize(myFirstComponent), myPoint.y)); } else { setLastSize( Math.max( getMinSize(myLastComponent), ThreeComponentsSplitter.this.getHeight() - myPoint.y - getDividerWidth())); } } } else { if (getWidth() > 0 || myDividerZone > 0) { if (myIsFirst) { setFirstSize(Math.max(getMinSize(myFirstComponent), myPoint.x)); } else { setLastSize( Math.max( getMinSize(myLastComponent), ThreeComponentsSplitter.this.getWidth() - myPoint.x - getDividerWidth())); } } } ThreeComponentsSplitter.this.doLayout(); } else if (MouseEvent.MOUSE_MOVED == e.getID()) { if (myGlassPane != null) { if (isInside(e.getPoint())) { myGlassPane.setCursor(getResizeCursor(), myListener); e.consume(); } else { myGlassPane.setCursor(null, myListener); } } } if (myWasPressedOnMe) { e.consume(); } }