Java JTree clear tree node selection

Description

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;
   }
}



PreviousNext

Related