java实现树型结构样式

时间:2022-11-21 09:59:56
 import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*; public class Root extends JFrame
{
//创建节点数组
DefaultMutableTreeNode[] dmtn={
new DefaultMutableTreeNode(new NodeValue("图书馆管理系统")),
new DefaultMutableTreeNode(new NodeValue("学生用户管理")),
new DefaultMutableTreeNode(new NodeValue("图书管理")),
new DefaultMutableTreeNode(new NodeValue("查询图书")),
new DefaultMutableTreeNode(new NodeValue("借阅预约图书")),
new DefaultMutableTreeNode(new NodeValue("归还挂失图书")),
new DefaultMutableTreeNode(new NodeValue("交纳罚款")),
new DefaultMutableTreeNode(new NodeValue("管理员管理")),
new DefaultMutableTreeNode(new NodeValue("退出"))
};
//创建树模型,指定根节点为“学生管理系统”
DefaultTreeModel dtm = new DefaultTreeModel(dmtn[0]);
JTree jt = new JTree(dtm);//创建包含dtm树模型的JTree对象
JScrollPane jsp=new JScrollPane(jt);//为JTree创建滚动窗体   private JSplitPane jsplr=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);//创建分割窗体对象
private JPanel jp=new JPanel();//创建JPanel对象   public Root() {
this.addTreeListener();//为树节点注册事件监听器
for (int i=1;i<9;i++)
{//向根节点添加子节点
dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);
}
jt.setEditable(false);//设置该树中节点是可编辑的
this.add(jsplr);//将包含树的滚动窗口添加进窗体
jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口
jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口
jsplr.setRightComponent(jp);
jsplr.setDividerLocation(200);//设置分隔条的初始位置
jsplr.setDividerSize(4);//设置分隔条的宽度
//设置窗体的关闭动作,标题,大小,位置及可见性
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体首次出现的大小和位置--自动居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int centerX = screenSize.width/2;
int centerY = screenSize.height/2;
int w=600;//本窗体宽度
int h=400;//本窗体高度
this.setBounds(centerX-w/2,centerY-h/2-10,w,h);//设置窗体出现在屏幕* // this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏 this.setVisible(true);//设置窗体可见
jt.setShowsRootHandles(true);//设置显示根节点的控制图标
}   public static void main(String[] args) {
   // TODO Auto-generated method stub
   new Root();
}