void (MouseEvent event) { if (!hasFocus()) { blockAutoScrollFromSource(); } setPressed(event, true); if (Boolean.FALSE.equals(UIUtil.getClientProperty(event.getSource(), AUTO_SELECT_ON_MOUSE_PRESSED)) && getSelectionModel().getSelectionCount() > 1) { return; } if (!SwingUtilities.isLeftMouseButton(event) && (SwingUtilities.isRightMouseButton(event) || SwingUtilities.isMiddleMouseButton(event))) { TreePath path = getClosestPathForLocation(event.getX(), event.getY()); if (path == null) return; Rectangle bounds = getPathBounds(path); if (bounds != null && bounds.y + bounds.height < event.getY()) return; if (getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) { TreePath[] selectionPaths = getSelectionModel().getSelectionPaths(); if (selectionPaths != null) { for (TreePath selectionPath : selectionPaths) { if (selectionPath != null && selectionPath.equals(path)) return; } } } getSelectionModel().setSelectionPath(path); } }