DefaultMutableTreeNode nodeA = new DefaultMutableTreeNode("nodeA");
DefaultMutableTreeNode nodeB = new DefaultMutableTreeNode("nodeB");
DefaultMutableTreeNode nodeC = new DefaultMutableTreeNode("nodeC");
root.add(nodeA);
root.add(nodeB);
root.add(nodeC);
DefaultMutableTreeNode nodeAA = new DefaultMutableTreeNode("nodeAA");
DefaultMutableTreeNode nodeAB = new DefaultMutableTreeNode("nodeAB");
nodeA.add(nodeAA);
nodeA.add(nodeAB);
DefaultMutableTreeNode nodeCA = new DefaultMutableTreeNode("nodeCA");
DefaultMutableTreeNode nodeCB = new DefaultMutableTreeNode("nodeCB");
DefaultMutableTreeNode nodeCC = new DefaultMutableTreeNode("nodeCC");
nodeC.add(nodeCA);
nodeC.add(nodeCB);
nodeC.add(nodeCC);
DefaultMutableTreeNode nodeCBA = new DefaultMutableTreeNode("nodeCBA");
DefaultMutableTreeNode nodeCBB = new DefaultMutableTreeNode("nodeCBB");
nodeCB.add(nodeCBA);
nodeCB.add(nodeCBB);
DefaultTreeModel defaultTreeModel = new DefaultTreeModel(root);
JTree tree = new JTree(defaultTreeModel);
@SuppressWarnings("rawtypes")
Enumeration enumeration = root.preorderEnumeration();
while (enumeration.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement();
TreePath treePath = new TreePath(node.getPath());
tree.expandPath(treePath);
}
Container container = getContentPane();
container.add(tree, BorderLayout.WEST);
// Dimension dimension = container.getPreferredSize();
JPanel panel = new JPanel(new GridLayout(5, 1, 10, 10));
JButton b1 = new JButton("按前序遍历");
JButton b2 = new JButton("按后序遍历");
JButton b3 = new JButton("以广度优先遍历");
JButton b4 = new JButton("以深度优先遍历");
JButton b5 = new JButton("遍历直属子节点");
panel.add(b1);
panel.add(b2);
panel.add(b3);
panel.add(b4);
panel.add(b5);
container.add(panel, BorderLayout.CENTER);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
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.depthFirstEnum