zoukankan      html  css  js  c++  java
  • JTREE使用例子—创建一个客户端界面

    以下代码主要创建一个教师客户端界面。

    界面图片:

    复制代码
    /**利用 JTree 类,你可以显示等级体系的数据。一个 JTree 对象并没有包含实际的数据;它只是提供了数据的一个视图。*/
    import java.awt.Dimension;
    import java.awt.Image;
    import java.awt.Toolkit;
    
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    
    //Frame 是带有标题和边界的顶层窗口。
    public class TreeDemo1 extends JFrame{
        
        private DefaultMutableTreeNode dmtnRoot =                     //创建根节点
                new DefaultMutableTreeNode(new MyNode("操作选项","0"));
        private DefaultMutableTreeNode dmtn1 =                        //创建系统选项节点
                new DefaultMutableTreeNode(new MyNode("系统选项","1"));
        private DefaultMutableTreeNode dmtn2 =                        //创建学生信息管理节点
                new DefaultMutableTreeNode(new MyNode("学生信息管理","2"));
        private DefaultMutableTreeNode dmtn3 =                        //创建课程管理节点
                new DefaultMutableTreeNode(new MyNode("课程管理","3"));
        private DefaultMutableTreeNode dmtn4 =                        //创建班级设置节点
                new DefaultMutableTreeNode(new MyNode("班级设置","4"));
        private DefaultMutableTreeNode dmtn11 =                        //创建退出节点
                new DefaultMutableTreeNode(new MyNode("退出","11"));
        private DefaultMutableTreeNode dmtn13 =                        //创建密码修改节点
                new DefaultMutableTreeNode(new MyNode("密码修改","13"));
        private DefaultMutableTreeNode dmtn21 =                        //创建新生报到节点
                new DefaultMutableTreeNode(new MyNode("新生报到","21"));
        private DefaultMutableTreeNode dmtn22 =                        //创建学生信息查询节点
                new DefaultMutableTreeNode(new MyNode("学生信息查询","22"));
        private DefaultMutableTreeNode dmtn221 =                    //创建基本信息查询节点
                new DefaultMutableTreeNode(new MyNode("基本信息查询","221"));
        private DefaultMutableTreeNode dmtn222 =                    //创建成绩查询节点
                new DefaultMutableTreeNode(new MyNode("成绩查询","222"));
        private DefaultMutableTreeNode dmtn31 =                    //创建开课选项设置节点
                new DefaultMutableTreeNode(new MyNode("开课选项设置","31"));
        private DefaultMutableTreeNode dmtn32 =                    //创建课程成绩录入节点
                new DefaultMutableTreeNode(new MyNode("课程成绩录入","32"));
        private DefaultMutableTreeNode dmtn34 =                    //创建添加课程节点
                new DefaultMutableTreeNode(new MyNode("添加课程","34"));
        private DefaultMutableTreeNode dmtn42 =                    //创建增加班级节点
                new DefaultMutableTreeNode(new MyNode("增加班级","42"));
        private DefaultTreeModel dtm = new DefaultTreeModel(dmtnRoot);    //创建根节点
        private JTree jt = new JTree(dtm);                        //创建树状列表控件
        private JScrollPane jspz = new JScrollPane(jt);            //创建滚动窗口
        /**这段代码创建了DefaultMutableTreeNode 实例作为的节点。
         * 创建完节点后,通过指定刚才创建的根节点为JTree 构造函数的参数,创建一棵树。
         * 最后,将树放到滚动面板中,这是一个通常的策略,因为需要显示完一个树,而展开树需要另外比较大的空间。 */
        private JPanel jpy = new JPanel();                        //创建面板
        private JSplitPane jsp1 =                                 //创建分割窗口
                new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);
        //swing分割窗口控件JSplitPane,用来将窗口分割成两个部分。
        
        public TreeDemo1(){        //构造器
            this.initialTree();                                    //初始化树状列表控
            this.initialFrame();                                //初始化主窗体
        }
        
        public void initialTree(){
            //将各个节点添加到树根节点
            dmtnRoot.add(dmtn1);dmtnRoot.add(dmtn2);            
            dmtnRoot.add(dmtn3);dmtnRoot.add(dmtn4);
            dmtn1.add(dmtn11);dmtn1.add(dmtn13);
            dmtn2.add(dmtn21);dmtn2.add(dmtn22);
            dmtn22.add(dmtn221);dmtn22.add(dmtn222);
            dmtn3.add(dmtn31);dmtn3.add(dmtn32);dmtn3.add(dmtn34);
            dmtn4.add(dmtn42);
        }
        
        public void initialFrame(){                                //设置窗体的标题、大小及其可见性
            //设置分割窗体的位置并添加到主窗体
            this.add(jsp1);                
            jsp1.setDividerLocation(200);
            jsp1.setDividerSize(4);                                //设置分割窗体的宽度
            Image image = new ImageIcon("ico.gif").getImage();    //加载窗体图标对象
            //设置窗体的图标和标题
            this.setIconImage(image);
            this.setTitle("教师客户端");
            Dimension screenSize =                                 //得到屏幕的Dimension对象
                    Toolkit.getDefaultToolkit().getScreenSize();
            int centerX = screenSize.width/2;                    //计算屏幕宽度中间像素
            int centerY = screenSize.height/2;                    //计算屏幕高度中间像素
            int w = 900;                                        //本窗体宽度
            int h = 650;                                        //本窗体高度
            this.setBounds(centerX-w/2,centerY-h/2,w,h);        //设置窗体出现在屏幕中央
            this.setVisible(true);                                //设置窗体可见性
            this.setExtendedState(JFrame.MAXIMIZED_BOTH);        //窗体全屏
            
        }
        
        
        class MyNode{                                        //自定义的初始化树节点的数据对象的类
            private String values;                            //声明values属性    
            private String id;                                //用于确定节点的id属性    
            public MyNode(String values,String id){            //构造器
                this.values = values;                        //设置values的值
                this.id = id;                                //设置id的值
            }
            public String toString(){                        //重写toString方法
                return this.values;
            }
            public String getId(){                            //Id的get方法
                return this.id;
            }
        }
        /**DefaultMutableTreeNode 构造函数的参数是一个用户自定义的类对象,
         * 它包含或指向了关联树节点的数据。这个用户对象可以是一个字符串,或者是一个自定义的类。
         * 如果它实现了一个自定义对象,你应该要重新实现覆盖他的 toString 方法,
         * 这样他才能返回对应字符串作为节点显示的字符串。
         * JTree 默认情况下,每个节点都是用 toString 的返回值作为显示。
         * 所以,让 toString 返回一些有意义的值是很重要的。*/
        
        
        public static void main(String args[]){
            new TreeDemo1();
        }
    }
    
    /**你可以调用 Jtree 的构造函数创建一棵树,指定一个实现了 TreeNode 的类作为参数。
     * 你应该尽量把这棵树放到一个滚动面板中( scroll pane ),
     * 这样树就不会占用太大的空间。
     * */
    复制代码
     
  • 相关阅读:
    SQLServer: 解决“错误15023:当前数据库中已存在用户或角色
    DEV界面皮肤
    模拟业务最小测试用例
    POJ 2503 Babelfish(map)
    POJ 2001 Shortest Prefixes
    洛谷 P2672 推销员
    POJ 2104 K-th Number && 洛谷 P3834 【模板】可持久化线段树 1(主席树)
    洛谷 P1589 泥泞路
    HDU 6183 Color it(动态开点线段树)
    POJ 2482 Stars in Your Window
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2777376.html
Copyright © 2011-2022 走看看