Preventing Expansion or Collapse of a Node in a JTree: override JTree.setExpandedState()
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.TreePath; public class Main { public static void main(String[] argv) { JTree tree = new JTree() { protected void setExpandedState(TreePath path, boolean state) { if (state) { super.setExpandedState(path, state); } } }; JFrame frame = new JFrame("Ignore all collapse requests"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(tree)); frame.setSize(380, 320); frame.setLocationRelativeTo(null); frame.setVisible(true); } }