void (Tree tree) { TreeNode root = (TreeNode)tree.getModel().getRoot(); Enumeration<?> factories = root.children(); ArrayList<TreeNode[]> toExpand = new ArrayList<>(); while (factories.hasMoreElements()) { DefaultMutableTreeNode factoryNode = (DefaultMutableTreeNode)factories.nextElement(); Enumeration<?> configurations = factoryNode.children(); while (configurations.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)configurations.nextElement(); Descriptor config = (Descriptor)node.getUserObject(); if (config.isChecked()) { toExpand.add(factoryNode.getPath()); break; } } } for (TreeNode[] treeNodes : toExpand) { tree.expandPath(new TreePath(treeNodes)); } }