📄 treedemo2.java
字号:
/*
以TreeNode构造JTree:
JTree上的每一个节点就代表一个TreeNode对象,TreeNode本身是一个Interface,里面定义了7个有
关节点的方法,例如判断是否为树叶节点、有几个子节点(getChildCount())、父节点为何
(getparent())等等、这些方法的定义你可以在javax.swing.tree的package中找到,读者可自行查阅
java api文件。
在实际的应用上,一般我们不会直接实作此界面,而是采用java所提供的
DefaultMutableTreeMode类,此类是实现MutableTreeNode而来,并提供了其他许多实用的方法
MutableTreeNode本身也是一个Interface,且继承了TreeNode界面此类主要是定义一些节点的处理方
式,例如新增节点(insert())、删除节点(remove())、设置节点(setUserObject())等。
整个关系如下图:
TreeNode----extends--->MutableTreeNode---implements---DefaultMutableTreeNode
接下来我们来看如何利DefaultMutableTreeNode来建立JTree,我们先来看DefaultMutableTreeNode
的构造函数:
DefaultMutableTreeNode():建立空的DefaultMutableTreeNode对象。
DefaultMutableTreeNode(Object userObject):建立DefaultMutableTreeNode对象,
节点为userObject对象。
DefaultMutableTreeNode(Object userObject,Boolean allowsChildren):
建立DefaultMutableTreeNode对象,节点为userObject对象并决定此节点是否允许具有子节点。
以下为利用DefaultMutableTreeNode建立JTree的范例:TreeDemo2.java
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
public class TreeDemo2{
public TreeDemo2(){
JFrame f=new JFrame("TreeDemo2");
Container contentPane=f.getContentPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("资源管理器");
DefaultMutableTreeNode node1=new DefaultMutableTreeNode("我的公文包");
DefaultMutableTreeNode node2=new DefaultMutableTreeNode("我的电脑");
DefaultMutableTreeNode node3=new DefaultMutableTreeNode("收藏夹");
DefaultMutableTreeNode node4=new DefaultMutableTreeNode("Readme");
root.add(node1);
root.add(node2);
root.add(node3);
root.add(node4);
DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode("公司文件");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("私人文件");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("个人信件");
leafnode=new DefaultMutableTreeNode("本机磁盘(C:)");
node2.add(leafnode);
leafnode=new DefaultMutableTreeNode("本机磁盘(D:)");
node2.add(leafnode);
leafnode=new DefaultMutableTreeNode("本机磁盘(E:)");
node2.add(leafnode);
DefaultMutableTreeNode node31=new DefaultMutableTreeNode("网站列表");
node3.add(node31);
leafnode=new DefaultMutableTreeNode("奇摩站");
node31.add(leafnode);
leafnode=new DefaultMutableTreeNode("职棒消息");
node31.add(leafnode);
leafnode=new DefaultMutableTreeNode("网络书店");
node31.add(leafnode);
JTree tree=new JTree(root);
JScrollPane scrollPane=new JScrollPane();
scrollPane.setViewportView(tree);
contentPane.add(scrollPane);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new TreeDemo2();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -