work162.java

package test09;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.WindowConstants;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class work162 extends JFrame
{

public work162()
{
this.setTitle("树节点");
this.setLayout(new BorderLayout());
DefaultMutableTreeNode root1 = new DefaultMutableTreeNode("根节点");
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("一级节点A");
root1.add(node1);
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("二级节点",false); //不能有子节点
node1.add(node2);

root1.add(new DefaultMutableTreeNode("一级节点B"));
JTree tree1 = new JTree(root1); //利用根节点直接创建树
this.getContentPane().add(tree1,BorderLayout.WEST);

DefaultTreeModel treeModel1 = new DefaultTreeModel(root1); //利用模型创建树,采用默认判断方式
JTree tree2 = new JTree(treeModel1);
this.getContentPane().add(tree2,BorderLayout.CENTER);

DefaultTreeModel treeModel2 = new DefaultTreeModel(root1,true); //利用模型创建树,采用非默认判断方式
JTree tree3 = new JTree(treeModel2);
this.getContentPane().add(tree3,BorderLayout.EAST);

this.setSize(500,500);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

public static void main(String[] args)
{
work162 s1 = new work162();

}

}

/*
* 默认判断方式:
* 如果节点不存在子节点,则为叶子节点。
*
* 非默认判断方式:
* 不允许有子节点就是叶子节点,
* 如果允许有子节点,即使不包含任何子节点,也不是叶子节点
*
*
*/