package test;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.font.LayoutPath;
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;
public class ErgoticTreeNodeTest extends JFrame {
private DefaultMutableTreeNode root;
public static void main(String[] args) {
ErgoticTreeNodeTest frame=new ErgoticTreeNodeTest();
frame.setVisible(true);
}
public ErgoticTreeNodeTest(){
super();
setTitle("遍歷根節點");
setBounds(100,100, 290, 260);
setDefaultCloseOperation(EXIT_ON_CLOSE);
root =new DefaultMutableTreeNode("ROOT");//根節點ROOT
DefaultMutableTreeNode nodeFirst=new DefaultMutableTreeNode("一級子節點A");
nodeFirst.add( new DefaultMutableTreeNode("二級子節點A1"));
nodeFirst.add( new DefaultMutableTreeNode("二級子節點A2"));
root.add(nodeFirst);
DefaultMutableTreeNode nodeSecond=new DefaultMutableTreeNode("一級子節點B");
nodeSecond.add( new DefaultMutableTreeNode("二級子節點B1"));
nodeSecond.add( new DefaultMutableTreeNode("二級子節點B2"));
root.add(nodeSecond);
DefaultMutableTreeNode nodeThird=new DefaultMutableTreeNode("一級子節點C");
nodeThird.add( new DefaultMutableTreeNode("二級子節點C1"));
nodeThird.add( new DefaultMutableTreeNode("二級子節點C2"));
root.add(nodeThird);
JTree tree=new JTree(root);
getContentPane().add(tree,BorderLayout.CENTER);
final JPanel panel= new JPanel();
panel.setLayout(new GridLayout(0,1));
getContentPane().add(panel,BorderLayout.EAST);
final JButton button1=new JButton("按前序遍歷");
button1.addActionListener(new ButtonActionListener("按前序遍歷"));
panel.add(button1);
final JButton button2=new JButton("按后序遍歷");
button1.addActionListener(new ButtonActionListener("按后序遍歷"));
panel.add(button2);
final JButton button3=new JButton("以廣度遍歷");
button1.addActionListener(new ButtonActionListener("以廣度遍歷"));
panel.add(button3);
final JButton button4=new JButton("以深度遍歷");
button1.addActionListener(new ButtonActionListener("以深度遍歷"));
panel.add(button4);
final JButton button5=new JButton("遍歷子節點");
button1.addActionListener(new ButtonActionListener("遍歷子節點"));
panel.add(button5);
}
private class ButtonActionListener implements ActionListener{
private String mode;
public ButtonActionListener(String mode){
this.mode=mode;
}
public void actionPerformed(ActionEvent e){
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();
while(enumeration.hasMoreElements()){//遍歷節點列舉物件
DefaultMutableTreeNode n;
n=(DefaultMutableTreeNode)enumeration.nextElement();
for(int l=0;l<n.getLevel();l++){
System.out.print("----");
}
System.out.println(n.getUserObject());
}
}
}
}
uj5u.com熱心網友回復:
忘完了,建議java的ui別太下功夫,基本沒人用轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/42902.html
標籤:Eclipse
上一篇:求教!Hibernate如何捕獲SQLException中SQLState狀態碼?
下一篇:nextInt()輸入報錯
