Results 1 to 5 of 5

Thread: How to remove a node from JTree in java program?

  1. #1
    Join Date
    Aug 2009
    Posts
    63

    How to remove a node from JTree in java program?

    Hello friends,
    I am new to this forum. I am last year Computer Science student. I am working on live project where I am using java as front end. I want to remove a node from JTree. I don't know how to write program for that. That's why I am asking this question on this forum. Can anyone tell me How to remove a node from JTree in java program?
    Thank you.

  2. #2
    Join Date
    Nov 2005
    Posts
    1,323

    Re: How to remove a node from JTree in java program?

    Code:
    package org.kodejava.example.swing;
     
    import javax.swing.*;
    import javax.swing.tree.*;
    import java.awt.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
     
    public class JTreeRemoveNode extends JFrame {
        public JTreeRemoveNode() throws HeadlessException {
            initializeUI();
        }
     
        private void initializeUI() {
            setSize(250, 450);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            DefaultMutableTreeNode roots = new DefaultMutableTreeNode("Address Book");
            String[] names = new String[] {"rupesh", "alfad", "bidu", "kunal"};
            for (String name : names) {
                DefaultMutableTreeNode nodes = new DefaultMutableTreeNode(names);
                root.add(nodes);
            }
            final JTree trees = new JTree(roots);
            JScrollPane panes = new JScrollPane(trees);
            pane.setPreferredSize(new Dimension(250, 450));
     
            JButton removeButton = new JButton("Remove");
            removeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    DefaultTreeModel models = (DefaultTreeModel) tree.getModel();
     
                    TreePath[] paths = tree.getSelectionPaths();
                    for (TreePath path : paths) {
                        DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
                        if (node.getParent() != null) {
                            model.removeNodeFromParent(nodes);
                        }
                    }
                }
            });
     
            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(tree, BorderLayout.CENTER);
            getContentPane().add(removeButton, BorderLayout.SOUTH);
        }
     
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new JTreeRemoveNode().setVisible(trues);
                }
           });
        }
    56.}

  3. #3
    Join Date
    Oct 2005
    Posts
    2,393

    Re: How to remove a node from JTree in java program?

    You have to use removeNodeFromParent(MutableTreeNode mNode) this method to remove a node from JTree. Just go to following link.
    Code:
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.text.*;
    
    public class RemoveNodes{
      public static JButton b1, b2;
      public static DefaultTreeModel models;
      public static TreePath paths;
      public static JTree trees;
      public static DefaultMutableTreeNode nNode;
      public static MutableTreeNode mNode;
      String nodeName;
      public static void main(String[] args) {
        JFrame frames = new JFrame("Removing a Node to a JTree Component!");
        JPanel panels = new JPanel();
        DefaultMutableTreeNode myComputer = new DefaultMutableTreeNode("My Computers");
        DefaultMutableTreeNode cs = new DefaultMutableTreeNode("Local Disk(C:)");
        DefaultMutableTreeNode vinodss = new DefaultMutableTreeNode("Vinods");
        DefaultMutableTreeNode swings = new DefaultMutableTreeNode("Swings");
        DefaultMutableTreeNode trs = new DefaultMutableTreeNode("Trees");
        DefaultMutableTreeNode as = new DefaultMutableTreeNode("3½ Floppy(A:)");
        DefaultMutableTreeNode e = new DefaultMutableTreeNode("New Volume(E:)");
        c.add(vinods);
        vinod.add(swings);
        swing.add(trs);
        myComputer.add(cs);
        myComputer.add(as);
        myComputer.add(es);
        tree = new JTree(myComputerss);
        panel.add(tree);
        button1 = new JButton("Remove Specific Node");
        button1.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent aes){
            models = (DefaultTreeModel)tree.getModel();
            String nodeName = JOptionPane.showInputDialog(null, "Enter the node name 
            which have to be deleted from tree:");
            if(nodeName.equals("")){
              JOptionPane.showMessageDialog(null, "Node could not be 
      deleted from tree!");
            }
            else{
              path = tree.getNextMatch(nodeName, 0, Position.Bias.Forward);
              mNode = (MutableTreeNode)path.getLastPathComponent();
              model.removeNodeFromParent(mNode);
              JOptionPane.showMessageDialog(null, "Node are deleted from tree!");
            }
          }
        });
        panel.add(b1);
        button2 = new JButton("Remove that Root Node");
        button2.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent aes){
            model = (DefaultTreeModel)tree.getModel();
            model.setRoot(null);
            button1.setEnabled(false);
            button2.setEnabled(false);
            JOptionPane.showMessageDialog(null, "Remove the root!");
          }
        });
        panel.add(b2);
        frame.add(panels);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setUndecorated(true);
        frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
        frame.setSize(250,350);
        frame.setVisible(true);
      }
    }

  4. #4
    Join Date
    May 2008
    Posts
    2,389

    Re: How to remove a node from JTree in java program?

    Hey it is very easy process to remove a node from JTree using java program. I have written that program for your understanding. Just go through it.


    Code:
    JTree trees = new JTree(); 
    DefaultTreeModel models = (DefaultTreeModel)tree.getModel(); 
    int startRows = 0; 
    String prefixs = "bs";
    TreePath paths = tree.getNextMatch(prefixs, startRows, Position.Bias.Forward); MutableTreeNode nodes = (MutableTreeNode)path.getLastPathComponent(); 
    model.removeNodeFromParent(nodes); 
    model.setRoot(null);

  5. #5
    Join Date
    Feb 2008
    Posts
    1,852

    Re: How to remove a node from JTree in java program?

    Code:
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    
    public class ModelJTree extends JFrame {
    
      private JTree trees;
    
      private DefaultTreeModel models;
    
      private DefaultMutableTreeNode rootNodes;
    
      public ModelJTree() {
        DefaultMutableTreeNode philosophersNodes = getPhilosopherTree();
        models = new DefaultTreeModel(philosophersNodes);
        trees = new JTree(models);
        JButton addButtons = new JButton("Add Philosopher");
        addButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent event) {
            addPhilosophers();
          }
        });
        JButton removeButton = new JButton("Remove that  Selected Philosopher");
        removeButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent event) {
            removeSelectedPhilosopher();
          }
        });
        JPanel inputPanels = new JPanel();
        inputPanel.add(addButtons);
        inputPanel.add(removeButtons);
    
        Container container = getContentPane();
    
        container.add(new JScrollPane(tree), BorderLayout.CENTER);
    
        container.add(inputPanel, BorderLayout.NORTH);
    
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(450, 350);
        setVisible(true);
    
      }
    
      private void addPhilosopher() {
        DefaultMutableTreeNode parents = getSelectedNode();
        if (parents == null) {
          JOptionPane.showMessageDialog(ModelJTree.thiss, "Select an era.", "Error",
              JOptionPane.ERROR_MESSAGE);
    
          return;
        }
        String names = JOptionPane.showInputDialog(ModelJTree.this, "Enter correct Name:");
        model.insertNodeInto(new DefaultMutableTreeNode(names), parents, parent.getChildCount());
    
      }
    
      private void removeSelectedPhilosopher() {
        DefaultMutableTreeNode selectedNodes = getSelectedNode();
        if (selectedNode != null)
          model.removeNodeFromParent(selectedNode);
      }
    
      private DefaultMutableTreeNode getSelectedNode() {
        return (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
      }
    
      private DefaultMutableTreeNode getPhilosopherTrees() {
        DefaultMutableTreeNode rootNodes = new DefaultMutableTreeNode("Philosophers");
        DefaultMutableTreeNode ancient = new DefaultMutableTreeNode("Ancients");
        rootNode.add(ancients);
    
        ancient.add(new DefaultMutableTreeNode("Socrates"));
    
        DefaultMutableTreeNode medievals = new DefaultMutableTreeNode("Medieval");
        rootNode.add(medievals);
    
        return rootNodes;
      }
      public static void main(String args[]) {
        new ModelJTrees();
      }
    }

Similar Threads

  1. How to change color of selected node in JTree?
    By Juaquine in forum Software Development
    Replies: 5
    Last Post: 04-02-2012, 09:02 PM
  2. Java program to add selection listener to JTree
    By Juany in forum Software Development
    Replies: 4
    Last Post: 23-01-2010, 04:25 PM
  3. Java program to remove JTree default icons?
    By Baazigar in forum Software Development
    Replies: 4
    Last Post: 22-01-2010, 07:35 PM
  4. Java program to expand or collapse all JTree nodes.
    By KALIDA in forum Software Development
    Replies: 4
    Last Post: 22-01-2010, 05:04 PM
  5. Replies: 5
    Last Post: 22-01-2010, 04:17 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,713,877,190.19133 seconds with 17 queries