[an error occurred while processing this directive]

Enable and Disable Multiple Selections in a JTree Component

                         

In this section, you will learn how to enable and disable the multiple selections in a JTree component. The multiple selections in tree component that means user will allow or disallow the permission for selection the more than one tree component at a time. By default, the tree allows the multiple selections.

Description of program:

The following program helps you in enabling and disabling the multiple selections in a JTree component. First of all, this program constructs a simple tree that contains the root and child of root node. After creating a tree, you will allow the selection component of tree. If you want to select only one node at a time, you will use the SINGLE_TREE_SELECTION, if you will provide the selection to one vertical contiguous set of visible nodes, you will use the CONTIGUOUS_TREE_SELECTION and if you will allow the permission for multiple selection of visible nodes, you will use the DISCONTIGUOUS_TREE_SELECTION. This tree are displayed on the java swing frame.

Description of code:

getSelectionModel():
This is the method that returns the current selection model. 

setSelectionMode():
 This is the method that returns the value of selectionMode property either single-item or multiple-item.

TreeSelectionModel:
This is an interface that represents the current state of selection to the tree component. The TreeSledtionModel allows the selection only one path at a time by using the SINGLE_TREE_SELECTION, a number of contiguous paths to use the CONTIGUOUS_TREE_SELECTION  or a number of discontiguous paths to use the DISCONTIGUOUS_TREE_SELECTION.

SINGLE_TREE_SELECTION:
It allows the permission for selecting only one path at a time.

CONTIGUOUS_TREE_SELECTION:
It allows the permission for selection to contiguous.

DISCONTIGUOUS_TREE_SELECTION:
It allows the selection that contains any number of items but can not be necessary contiguous.

Here is the code of program:

import javax.swing.*;
import javax.swing.tree.*;

public class SelectionTree{
  public static void main(String[] args) {
    JFrame frame = new JFrame("Enabling and Disabling Multiple Selections in a 
   JTree Component!"
);
    DefaultMutableTreeNode myComputer = new DefaultMutableTreeNode("My Computer");
    DefaultMutableTreeNode c = new DefaultMutableTreeNode("Local Disk(C:)");
    DefaultMutableTreeNode vinod = new DefaultMutableTreeNode("Vinod");
    DefaultMutableTreeNode swing = new DefaultMutableTreeNode("Swing");
    DefaultMutableTreeNode tr = new DefaultMutableTreeNode("Tree");
    DefaultMutableTreeNode a = new DefaultMutableTreeNode("3 Floppy(A:)");
    DefaultMutableTreeNode e = new DefaultMutableTreeNode("New Volume(E:)");
    c.add(vinod);
    vinod.add(swing);
    swing.add(tr);
    myComputer.add(c);
    myComputer.add(a);
    myComputer.add(e);
    JTree tree = new JTree(myComputer);
//    Single selection node at a time
//    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.
    SINGLE_TREE_SELECTION);

//    provide selection to one vertical contiguous set of visible nodes
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.
 CONTIGUOUS_TREE_SELECTION
);
//    multiple selection of visible nodes
//    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.
  DISCONTIGUOUS_TREE_SELECTION);

    frame.add(tree);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setUndecorated(true);
    frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
    frame.setSize(200,200);
    frame.setVisible(true);
  }
}

Download this example.

Output of program:

Single selection node:

Selection to one vertical contiguous set of visible nodes:

Multiple selection of visible nodes:

                         

[an error occurred while processing this directive]