void (MouseEvent e) { final TreePath path = getPathForLocation(e.getX(), e.getY()); if (path != null) { final Object node = path.getLastPathComponent(); if (node instanceof FrameworkSupportNode) { final Rectangle checkboxBounds = ((CheckboxTreeCellRendererBase)getCellRenderer()).myCheckbox.getBounds(); final Rectangle pathBounds = getPathBounds(path); assert pathBounds != null; checkboxBounds.setLocation(pathBounds.getLocation()); if (checkboxBounds.contains(e.getPoint())) { try { myProcessingMouseEventOnCheckbox = true; super.processMouseEvent(e); } finally { myProcessingMouseEventOnCheckbox = false; } return; } } } super.processMouseEvent(e); }