🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
StudentSystem.java ~~~ package zyw.student; import zyw.admin.NodeValue; import javax.swing.*; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class StudentSystem extends JFrame implements ActionListener { DefaultMutableTreeNode[] dmtn={//创建节点数组 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); //分割方向为上下方向 Image image=new ImageIcon("tsgl.jpg").getImage(); ImageIcon ii = new ImageIcon(image); private JLabel jlRoot=new JLabel(ii);//标签文本自动居中 private JPanel jp=new JPanel(); //创建JPanel对象 CardLayout cl=new CardLayout(); //获取卡片布局管理器引用 public StudentSystem(){ this.initJp(); jt.addTreeSelectionListener(new TreeSelectionListener(){//用内部类显示树的各选择节点 public void valueChanged(TreeSelectionEvent e){ DefaultMutableTreeNode cdmtn= (DefaultMutableTreeNode)e.getPath().getLastPathComponent(); NodeValue cnv=(NodeValue)cdmtn.getUserObject(); if(cnv.getValue().equals("学生用户管理系统")){ cl.show(jp,"root");//显示主界面 } if(cnv.getValue().equals("查询图书")){ cl.show(jp,"ts");//显示"查询图书"界面 } else if(cnv.getValue().equals("预约图书")){ cl.show(jp,"OrderBook");//显示"预约图书"界面 } else if(cnv.getValue().equals("挂失图书")){ cl.show(jp,"GuaShi");//显示"归还挂失图书"界面 } else if(cnv.getValue().equals("退出")){//用选择菜单提示是否退出系统 int i=JOptionPane.showConfirmDialog(StudentSystem.this, "是否退出系统?","消息",JOptionPane.YES_NO_OPTION); if(i==JOptionPane.YES_OPTION){System.exit(0);} } } }); for(int i=1;i<dmtn.length;i++){//向根节点添加子节点 dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); } jt.setEditable(false);//设置该树中节点是不可编辑的 this.add(jsplr);//将包含树的滚动窗口添加进窗体 jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口 //为jp设置大小位置并添加进右边的子窗口 jp.setBounds(200,50,300,400); jsplr.setRightComponent(jp); jsplr.setDividerLocation(150);//设置分隔条的初始位置 jsplr.setDividerSize(4); //设置分隔条的宽度 jlRoot.setFont(new Font("Courier",Font.PLAIN,30)); jlRoot.setHorizontalAlignment(JLabel.CENTER); jlRoot.setVerticalAlignment(JLabel.CENTER); //设置窗体的关闭动作,标题,大小,位置及可见性 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //对标题和logo图片进行初始化 Image image=new ImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("学生管理系统"); //设置窗体首次出现的大小和位置--自动居中 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int centerX=screenSize.width/2; int centerY=screenSize.height/2; int w=500;//本窗体宽度 int h=400;//本窗体高度 this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央 this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏 this.setVisible(true); jt.setShowsRootHandles(true);//设置显示根节点的控制图标 } public void initJp(){//对所引用的方法进行声明 jp.setLayout(cl); jp.add(jlRoot,"root"); /*jp.add(new SearchBook(),"ts"); jp.add(new OrderBook(),"OrderBook"); jp.add(new GuaShi(),"GuaShi");*/ } @Override public void actionPerformed(ActionEvent e) { } public static void main(String[]args){ new StudentSystem(); } } ~~~ ![](https://box.kancloud.cn/98a8a70ac0e7e9a0dbc81bf950c50846_821x347.png)