JTree Examples #Programming Code Examples #Java/J2EE/J2ME #Advanced Swing

SimpleTree.java Basic tree built out of DefaultMutableTreeNodes. A DefualtMutableTreeNode is a starting point for a root node, in which children nodes can be added. 
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;

/** Example tree built out of DefaultMutableTreeNodes. 
 *
 */

public class SimpleTree extends JFrame {
  public static void main(String[] args) {
    new SimpleTree();
  }
 
  public SimpleTree() {
    super("Creating a Simple JTree");
    WindowUtilities.setNativeLookAndFeel();
    addWindowListener(new ExitListener());
    Container content = getContentPane();
    Object[] hierarchy =
      { "javax.swing",
        "javax.swing.border",
        "javax.swing.colorchooser",
        "javax.swing.event",
        "javax.swing.filechooser",
        new Object[] { "javax.swing.plaf",
                       "javax.swing.plaf.basic",
                       "javax.swing.plaf.metal",
                       "javax.swing.plaf.multi" },
        "javax.swing.table",
        new Object[] { "javax.swing.text",
                       new Object[] { "javax.swing.text.html",
                                     "javax.swing.text.html.parser" },
                       "javax.swing.text.rtf" },
        "javax.swing.tree",
        "javax.swing.undo" };
    DefaultMutableTreeNode root = processHierarchy(hierarchy);
    JTree tree = new JTree(root);
    content.add(new JScrollPane(tree), BorderLayout.CENTER);
    setSize(275, 300);
    setVisible(true);
  }

  /** Small routine that will make a node out of the first entry
   *  in the array, then make nodes out of subsequent entries
   *  and make them child nodes of the first one. The process 
   *  is repeated recursively for entries that are arrays.
   */

  private DefaultMutableTreeNode processHierarchy(
                                           Object[] hierarchy) {
    DefaultMutableTreeNode node =
      new DefaultMutableTreeNode(hierarchy[0]);
    DefaultMutableTreeNode child;
    for(int i=1; i 0) {
      try {
        n = Integer.parseInt(args[0]);
      } catch(NumberFormatException nfe) {
        System.out.println(
          "Can't parse number; using default of " + n);
      }
   }
    new DynamicTree(n);
  }
 
  public DynamicTree(int n) {
    super("Creating a Dynamic JTree");
    WindowUtilities.setNativeLookAndFeel();
    addWindowListener(new ExitListener());
    Container content = getContentPane();
    JTree tree = new JTree(new OutlineNode(1, n));
    content.add(new JScrollPane(tree), BorderLayout.CENTER);
    setSize(300, 475);
    setVisible(true);
  }
}


    * OutlineNode.java A simple tree node that builds its children.
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;

/** Simple TreeNode that builds children on the fly.
 *  The key idea is that getChildCount is always called before
 *  any actual children are requested. That way, getChildCount 
 *  builds the children if they don't already exist.
 *  

* In this case, it just builds an "outline" tree. I.e., * if the root is current node is "x", the children are * "x.0", "x.1", "x.2", and "x.3". *

* */ public class OutlineNode extends DefaultMutableTreeNode { private boolean areChildrenDefined = false; private int outlineNum; private int numChildren; public OutlineNode(int outlineNum, int numChildren) { this.outlineNum = outlineNum; this.numChildren = numChildren; } public boolean isLeaf() { return(false); } public int getChildCount() { if (!areChildrenDefined) { defineChildNodes(); } return(super.getChildCount()); } private void defineChildNodes() { // You must set the flag before defining children if you // use "add" for the new children. Otherwise, you get an // infinite recursive loop since add results in a call // to getChildCount. However, you could use "insert" in such // a case. areChildrenDefined = true; for(int i=0; i<numchildren ; i++) { add(new OutlineNode(i+1, numChildren)); } } public String toString() { TreeNode parent = getParent(); if (parent == null) { return(String.valueOf(outlineNum)); } else { return(parent.toString() + "." + outlineNum); } } } **// CustomIcons.java Demonstrates displaying custom icons for the nodes of a tree. import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; /** JTree with missing or custom icons at the tree nodes. * */ public class CustomIcons extends JFrame { public static void main(String[] args) { new CustomIcons(); } private Icon customOpenIcon = new ImageIcon("images/Circle_1.gif"); private Icon customClosedIcon = new ImageIcon("images/Circle_2.gif"); private Icon customLeafIcon = new ImageIcon("images/Circle_3.gif"); public CustomIcons() { super("JTree Selections"); WindowUtilities.setNativeLookAndFeel(); addWindowListener(new ExitListener()); Container content = getContentPane(); content.setLayout(new FlowLayout()); DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode child; DefaultMutableTreeNode grandChild; for(int childIndex=1; childIndex<4; childIndex++) { child = new DefaultMutableTreeNode("Child " + childIndex); root.add(child); for(int grandChildIndex=1; grandChildIndex<4; grandChildIndex++) { grandChild = new DefaultMutableTreeNode("Grandchild " + childIndex + "." + grandChildIndex); child.add(grandChild); } } JTree tree1 = new JTree(root); tree1.expandRow(1); // Expand children to illustrate leaf icons. JScrollPane pane1 = new JScrollPane(tree1); pane1.setBorder( BorderFactory.createTitledBorder("Standard Icons")); content.add(pane1); JTree tree2 = new JTree(root); // Expand children to illustrate leaf icons. tree2.expandRow(2); DefaultTreeCellRenderer renderer2 = new DefaultTreeCellRenderer(); renderer2.setOpenIcon(null); renderer2.setClosedIcon(null); renderer2.setLeafIcon(null); tree2.setCellRenderer(renderer2); JScrollPane pane2 = new JScrollPane(tree2); pane2.setBorder( BorderFactory.createTitledBorder("No Icons")); content.add(pane2); JTree tree3 = new JTree(root); // Expand children to illustrate leaf icons. tree3.expandRow(3); DefaultTreeCellRenderer renderer3 = new DefaultTreeCellRenderer(); renderer3.setOpenIcon(customOpenIcon); renderer3.setClosedIcon(customClosedIcon); renderer3.setLeafIcon(customLeafIcon); tree3.setCellRenderer(renderer3); JScrollPane pane3 = new JScrollPane(tree3); pane3.setBorder( BorderFactory.createTitledBorder("Custom Icons")); content.add(pane3); pack(); setVisible(true); } } **//

Note: Brought from our old site: http://www.salearningschool.com/example_codes/ on Jan 2nd, 2017 From: http://sitestree.com/?p=10300
Categories:Programming Code Examples, Java/J2EE/J2ME, Advanced Swing
Tags:Java/J2EE/J2MEAdvanced Swing
Post Data:2017-01-02 16:04:31

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada