Go Back   TechArena Community > Software > Software Development
Become a Member!
Forgot your username/password?
Register Tags Active Topics RSS Search Mark Forums Read SiteMap

Tags: , , , , , ,

Sponsored Links



Java program to add selection listener to JTree

Software Development


Reply
 
Thread Tools Search this Thread
  #1  
Old 23-01-2010
Member
 
Join Date: Nov 2009
Posts: 131
Java program to add selection listener to JTree

Hello to all,
I am new to this forum. I am last year Computer Science student. As a part of my syllabus I am working on project where I am using java as front end and SQL as back end. In my project I have to add selection listener to JTree. I tried various method but none of them worked out. Can anyone tell me how to write Java program to add selection listener to JTree?
Thank you.

Last edited by Juany : 23-01-2010 at 03:53 PM.
Reply With Quote
  #2  
Old 23-01-2010
absolute55's Avatar
Member
 
Join Date: Nov 2005
Posts: 1,238
Re: Java program to add selection listener to JTree

Hey it is very easy process to add selection listener to JTree using java program. You have o just use swing component to do this. Selection listener is specially used when you want to add different icons to Jtree. Just try to understand following program.

Code:
package org.kodejava.example.swing;

import javax.swing.*;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import java.awt.*;

public class JTreeSelectionListenerDemo extends JFrame {

    public JTreeSelectionListenerDemo() throws HeadlessException {
        initializeUI();
    }

    private void initializeUI() {
        setSize(250, 450);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        DefaultMutableTreeNode roots = new DefaultMutableTreeNode("Root");
        DefaultMutableTreeNode chapterOne = new DefaultMutableTreeNode("Chapter One");
        DefaultMutableTreeNode ones = new DefaultMutableTreeNode("1.2");
        DefaultMutableTreeNode twos = new DefaultMutableTreeNode("1.3");
        DefaultMutableTreeNode threes = new DefaultMutableTreeNode("1.4");

        root.add(chapterOnes);
        chapterOnes.add(ones);
        chapterOnes.add(twos);
        chapterOnes.add(threes);

        JTree trees = new JTree(roots);
        tree.addTreeSelectionListener(createSelectionListener());

        JScrollPane panes = new JScrollPane(trees);
        pane.setPreferredSize(new Dimension(250, 450));

        getContentPane().add(panes);
    }

    private TreeSelectionListener createSelectionListener() {
        return new TreeSelectionListener() {
            public void valueChanged(TreeSelectionEvent ew) {
                TreePath path = ew.getPath();                
                int pathCount = paths.getPathCount();

                for (int k = 0; k < pathCount; k++) {
                    System.out.print(path.getPathComponent(i).toString());
                    if (k + 1 != pathCount) {
                        System.out.print("|");
                    }
                }
                System.out.println("");
            }
        };
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JTreeSelectionListenerDemo().setVisible(true);
            }
        });
    }
}
Reply With Quote
  #3  
Old 23-01-2010
Reegan's Avatar
Member
 
Join Date: Oct 2005
Posts: 2,299
Re: Java program to add selection listener to JTree

For detecting specific node in a tree, you have to register a tree selection listener. You can select only one node at a time. I have written similar example at below. Just go through it. Try to understand each steps. Just use this code in your java program to add selection listener to JTree.

Code:
tree.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(TreeSelectionEvent e) {
            DefaultMutableTreeNode nodes = (DefaultMutableTreeNode)
                               tree.getLastSelectedPathComponent();

        
            if (nodes == null) return;

    
            Object nodeInfos = nodes.getUserObject();


        }
    });
To specify that the tree should support single selection, you have to use this code:

trees.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
Reply With Quote
  #4  
Old 23-01-2010
opaper's Avatar
Member
 
Join Date: May 2008
Posts: 2,362
Re: Java program to add selection listener to JTree

I use following Java program to add selection listener to JTree in my project and it works very well. I think you also use this in your project. Just make changes in variable as per your comfort. Try to add 2 method for accepting input from user.


Code:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;

public class UsingTreeSelectionListener {

  public static void main(String[] a) {
    JFrame frames = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTree trees = new JTree();
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addTreeSelectionListener(new SelectionListener());

    frame.add(new JScrollPane(trees));

    frame.setSize(350, 250);
    frame.setVisible(true);
  }

}

class SelectionListener implements TreeSelectionListener {

  public void valueChanged(TreeSelectionEvent ses) {
    JTree trees = (JTree) ses.getSource();
    DefaultMutableTreeNode selectedNodes = (DefaultMutableTreeNode) tree
        .getLastSelectedPathComponent();
    String selectedNodeNames = selectedNodes.toString();
    if (selectedNodes.isLeaf()) {

      System.out.println(selectedNodeNames);

    }
  }
}
__________________
The FIFA Manager 2009 PC Game
Reply With Quote
  #5  
Old 23-01-2010
MindSpace's Avatar
Member
 
Join Date: Feb 2008
Posts: 1,832
Re: Java program to add selection listener to JTree

For getting selected node value of JTree, you have to add a selection listener in order to be able to detect selections when a node of a JTree has selected or not. Th following code adds a TreeSelectionListener. It also have getLastPathComponent() method of a TreePath object to get the message of the JTree node selected.


Code:
tree.addTreeSelectionListener(new TreeSelectionListener() {
	public void valueChanged(TreeSelectionEvent evt) {
		
		TreePath[] paths1 = evt.getPaths();
 
		
		for (int k=0; k<paths.length; k++) {
			if (evt.isAddedPaths1(k)) {
				
				System.out.println(paths1[i].getLastPathComponent().toString());
				break;
			} else {
				
				break;
			}
		}
	}
});
Reply With Quote
Reply

  TechArena Community > Software > Software Development


Thread Tools Search this Thread
Search this Thread:

Advanced Search


Similar Threads for: "Java program to add selection listener to JTree"
Thread Thread Starter Forum Replies Last Post
JTree class of java Owen Fernandes Software Development 5 13-02-2010 08:23 AM
Java program to remove JTree default icons? Baazigar Software Development 4 22-01-2010 07:35 PM
How to remove a node from JTree in java program? kamina23 Software Development 4 22-01-2010 05:41 PM
Java program to expand or collapse all JTree nodes. KALIDA Software Development 4 22-01-2010 05:04 PM
How to create JTree with different icons for each node using java program? KALANI84 Software Development 5 22-01-2010 04:17 PM


All times are GMT +5.5. The time now is 03:36 AM.