Java JTree_3 (二)

2014-11-24 08:10:04 · 作者: · 浏览: 6
enumerate("按前序遍历");
}

});

b2.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
enumerate("按后序遍历");
}

});

b3.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
enumerate("以广度优先遍历");
}

});

b4.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
enumerate("以深度优先遍历");
}

});

b5.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
enumerate("遍历直属子节点");
}

});
}

private void enumerate(String mode) {
@SuppressWarnings("rawtypes")
Enumeration enumeration;
if (mode.equals("按前序遍历")) {
enumeration = root.preorderEnumeration();
}else if (mode.equals("按后序遍历")) {
enumeration = root.postorderEnumeration();
}else if (mode.equals("以广度优先遍历")) {
enumeration = root.breadthFirstEnumeration();
}else if (mode.equals("以深度优先遍历")) {
enumeration = root.depthFirstEnumeration();
}else {
enumeration = root.children();
}

System.out.println(mode + " :");
System.out.println("_______________________________");
while (enumeration.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement();
for (int i = 0; i < node.getLevel(); i++) { // 根据节点的级别输出占位符
System.out.print("----");
}
System.out.println(node.getUserObject()); // 输出节点标签
}
System.out.println();
}

/**
* @param args
*/
public static void main(String[] args) {
JTree_3 instance = new JTree_3();
instance.setTitle("遍历树节点");
instance.setVisible(true);
instance.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
instance.pack();
}

}
/**
*
*/
package com.han;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;

/**
* This class is to enumerate all the nodes of a tree in different ways ...
* 遍历树节点
* @author HAN
*
*/
public class JTree_3 extends JFrame {

/**
*
*/
private static final long serialVersionUID = -4405016910342910815L;
DefaultMutableTreeNode root;
/**
*
*/
public JTree_3() {
root = new DefaultMuta