Java JTree clear tree node selection
import java.awt.Container; import java.awt.FlowLayout; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; public class Main { public static void main(String args[]) { final JFrame f = new JFrame("JTree Demo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = f.getContentPane(); c.setLayout(new FlowLayout()); DefaultMutableTreeNode root = new DefaultMutableTreeNode("Computer"); DefaultMutableTreeNode c1 = new DefaultMutableTreeNode("A"); DefaultMutableTreeNode c2 = new DefaultMutableTreeNode("B"); DefaultMutableTreeNode c3 = new DefaultMutableTreeNode("C"); root.add(c1);/*ww w.j a va 2 s. co m*/ root.add(c2); root.add(c3); c1.add(new DefaultMutableTreeNode("1")); c1.add(new DefaultMutableTreeNode("2")); c2.add(new DefaultMutableTreeNode("3")); c2.add(new DefaultMutableTreeNode("4")); c3.add(new DefaultMutableTreeNode("5")); DefaultMutableTreeNode n6 = new DefaultMutableTreeNode("6"); c3.add(n6); JTree t = new JTree(root); clearSelection(Arrays.asList(t)); c.add(new JScrollPane(t)); f.pack(); f.setVisible(true); } public static Map<JTree, List<TreePath>> clearSelection(List<JTree> trees) { if (trees == null) { throw new NullPointerException("trees == null"); } Map<JTree, List<TreePath>> selectionPaths = new HashMap<>(); for (JTree tree : trees) { if (tree.getSelectionCount() > 0) { TreePath[] paths = tree.getSelectionPaths(); if (paths != null && paths.length > 0) { selectionPaths.put(tree, Arrays.asList(paths)); } tree.clearSelection(); } } return selectionPaths; } }