Home Java Example Java Swing JTree Multiple Selection
Questions:Ask|Latest


 
 

Share on Google+Share on Google+

JTree Multiple Selection

Advertisement
In this section, you will learn how to enable and disable the multiple selections in a JTree component.

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:

Advertisements

Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 16, 2007

Ask Questions?    Discuss: JTree Multiple Selection   View All Comments

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
DMCA.com