Allow multiple selection of nodes not necessarily contigous in JTree

Java 8Object Oriented ProgrammingProgramming

To allow multiple selection of nodes not necessarily contiguous, set the selection mode for tree to be DISCONTIGUOUS_TREE_SELECTION −

tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

The following is an example to allow multiple selection of nodes, which are not necessarily contigous −

Example

package my;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
public class SwingDemo {
   public static void main(String[] args) throws Exception {
      JFrame frame = new JFrame("Demo");
      DefaultMutableTreeNode node = new DefaultMutableTreeNode("Products");
      DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Clothing");
      DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Electronics");
      DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("Home Decor");
      DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Furniture");
      node.add(node1);
      node.add(node2);
      node.add(node3);
      node.add(node4);
      DefaultMutableTreeNode one = new DefaultMutableTreeNode("Shirt");
      DefaultMutableTreeNode two = new DefaultMutableTreeNode("Trousers");
      DefaultMutableTreeNode three = new DefaultMutableTreeNode("Jeans");
      DefaultMutableTreeNode four = new DefaultMutableTreeNode("Mobiles");
      DefaultMutableTreeNode five = new DefaultMutableTreeNode("Camera");
      DefaultMutableTreeNode six = new DefaultMutableTreeNode("Tablet");
      DefaultMutableTreeNode seven = new DefaultMutableTreeNode("Paintings");
      DefaultMutableTreeNode eight = new DefaultMutableTreeNode("Showpieces");
      DefaultMutableTreeNode nine = new DefaultMutableTreeNode("Wardrobes");
      DefaultMutableTreeNode ten = new DefaultMutableTreeNode("Bean Bags");
      node1.add(one);
      node1.add(two);
      node1.add(three);
      node2.add(four);
      node2.add(five);
      node2.add(six);
      node3.add(seven);
      node3.add(eight);
      node4.add(nine);
      node4.add(ten);
      JTree tree = new JTree(node);
      for (int i = 0; i < tree.getRowCount(); i++) {
         tree.expandRow(i);
      }
      tree.putClientProperty("JTree.lineStyle", "Angled");
      tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
      tree.setRowHeight(25);
      frame.add(tree);
      frame.setSize(600,450);
      frame.setVisible(true);
   }
}

Output

raja
Published on 03-Jun-2019 14:44:00
Advertisements