学了java很久了想做个成绩管理系统就参考了一些资料用JTree做主要的界面结构 Mysql做数据库 开发中有详细的注释可以和一些初学者共勉 其中这个是教师端的一些界面程序功能还未实现

主窗体设计如下

public class TeacherClient extends JFrame
{//host=数据库主机IP+":"+端口号private String host;//声明学院编号的引用String coll_id;//创建树的各个节点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);//创建面板private JPanel jpy=new JPanel();//创建分割窗格private JSplitPane jsp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);声明功能模块引用(声明语句将在后面各模块的开发过程中逐一添加)private Welcome welcome;private ChangePwdTeacher changepwdteacher;private NewStu newstu;private TeachSearchInfo teachSearchInfo;private StuScore stuscore;private CourseManage coursemanage;private GradeInDB gradeindb;private NewCourse newcourse;private NewClass newclass;//声明卡片布局引用CardLayout cl;public TeacherClient(String coll_id,String host){this.host=host;this.coll_id=coll_id;//初始化树状列表控件this.initialTree();//创建各功能模块对象this.initialPanel();//为节点注册监听器this.addListener();//初始化面板this.initialJpy();//初始化主窗体this.initialFrame();}说明:上面的代码实现了一个左边是一个树状列表控件,右边是一个卡片布局面板的窗体,并对树的各个节点注册了监听器,对面板及主窗体进行了初始化,当然这里只是调用了相应的方法,其中各个体会见后面的代码 其中MyNode是一个自定义类

主窗体初始化:

public void initialPanel(){//初始化各功能模块//初始化代码在后面各模块的开发过程中逐一添加}
/*上面的那段代码设想是用于初始化各个功能模块的对象,但是由于各个功能模块还没有开发好,所以暂时没有代码到时候做到哪里会添加相应的模块*///初始化树状列表控件的方法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 initialJpy(){//将各功能模块添加到面板中//将面板设置为卡片布局jpy.setLayout(new CardLayout());cl=(CardLayout)jpy.getLayout();//各功能模块将在后面各模块的开发过程中逐一添加/* 上面除了设置右边面板的布局管理器之外,另外一个要完成的任务是将各个功能模块的对象添加到该面板中去这里的代码以后也会逐步添加的 */   }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 = 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-30,w,h);this.setVisible(true);//窗体全屏this.setExtendedState(JFrame.MAXIMIZED_BOTH);}
/*这里主要是对主窗体显示效果进行初始化,使主窗体首先在屏幕中间位置显示,然后又以全屏的方式显示,其中Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
获得显示器的尺寸,接下去的两行代码是根据窗体的尺寸设置其位置,使其居中显示*/

鼠标事件监听

public void addListener(){//为树状列表控件注册鼠标事件监听器jt.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent e){ DefaultMutableTreeNode dmtntemp=(DefaultMutableTreeNode)jt.getLastSelectedPathComponent();MyNode mynode=(MyNode)dmtntemp.getUserObject();
/*这段代码主要是获得选中节点的最后一个路径组件,进而获得存储在此节点的Object对象 然后取出对象的id属性值,根据该属性值确定显示那一块功能*/String id=mynode.getId();//根据id值显示不同的卡片if(id.equals("0")){//欢迎页面cl.show(jpy,"welcome");}else if(id.equals("11")){//退出系统int i=JOptionPane.showConfirmDialog(jpy,"您确认要退出出系统吗?","询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(i==0){System.exit(0);}}else if(id.equals("13"))else if(id.equals("21"))else if(id.equals("221")){//学生信息查询页面cl.show(jpy,"teachSearchInfo");teachSearchInfo.setFocus();}else if(id.equals("222"))else if(id.equals("31"))else if(id.equals("32"))else if(id.equals("34"))else if(id.equals("42"))}});//将展开节点的鼠标点击次数设为1jt.setToggleClickCount(1);}

MyNOde方法

class MyNode{private String values;private String id;public MyNode(String values,String id){this.values=values;this.id=id;}public String toString(){return this.values;}public String getId(){return this.id;}}
MyNode是一个内部类,主要用于创建节点时的内部参数,用于创建DefaultMutableTreeNode对象时对该节点对象进行初始化,在后面的监听事件中根据MyNode对象的属性值来判断单击是哪一个节点,从而确定是哪一个功能模块

【菜鸟学开发系统】学生成绩管理系统(二)相关推荐

  1. 基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  2. 基于php开发的学生成绩管理系统

    你好, 我是程序猿零壹. 分享一款学生成绩管理系统,该系统使用php+mysql开发,是一款用于管理课程信息.老师信息.学生信息及成绩的系统,包含最基础的增删改查,可以作为大学的毕业设计,也可以作为初 ...

  3. C语言系统程序总体框图,c语言学生成绩管理系统(含源代码)精要.doc

    C 语言程序设计作业 一 设计项目:学生成绩管理系统 二 总体设计: 1 程序设计组成框图: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩. 2 查看功能:输出姓名学号及各科成绩. 3 查 ...

  4. 检索有项目的教师信息mysql_学生成绩管理系统(六):项目总结

    学生成绩管理系统(六):项目总结 一.项目实现情况 初期项目计划: 简单的图形界面登录功能. 对数据库的的信息的查询功能. 对数据库的的信息的修改功能. 对数据库的的信息的删除功能. 对数据库的的信息 ...

  5. Web课程设计之学生成绩管理系统

    Web课设之学生成绩管理系统 一.实验题目 二.实验目的 三.总体设计 3.1 实验要求: 3.2 本系统所运用到的技术栈: 3.3 本系统所运用的编程工具 3.4 核心技术介绍 3.5 模块介绍 3 ...

  6. 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...

    篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...

  7. ssm学生成绩管理系统的设计与实现毕业设计源码070942

    摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设学生成绩 ...

  8. c语言成绩管理系统完整vc6,学生成绩管理系统源代码

    <学生成绩管理系统源代码>由会员分享,可在线阅读,更多相关<学生成绩管理系统源代码(25页珍藏版)>请在人人文库网上搜索. 1.一.课程设计(论文)题目学生成绩管理系统二.本次 ...

  9. 成绩管理系统管理学生属于计算机,学生成绩管理系统属于计算机哪方面的应用?...

    [简答题][说明] 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下. (1)每门课程都由3-6个单元构成,每个单元结束后会进行一次测试,其成绩作为这 ...

  10. c语言可视化学生管理系统,课程的设计C语言可视化程序学生成绩管理系统.doc

    课程的设计C语言可视化程序学生成绩管理系统 C语言可视化程序 设计报告 行政班级 机械0805 姓名 魏永涛 学号 0806080524 指导老师 夏建芳 课题名称 学生成绩管理系统 C可视化程序设计 ...

最新文章

  1. 巨量模型时代,浪潮不做旁观者:2457亿参数,打造全球最大中文预训练模型
  2. 新看了两件家具请朋友们给点意见
  3. ORACLE索引失效,更新统计信息
  4. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
  5. dede织梦调用顶级二级栏目及下三级栏目方法(数据库实现)
  6. button属性,居然才发现
  7. Javaweb学习笔记——(三)——————JavaScript基础DOM基础
  8. cout 数组_C++数组指针!
  9. mysql随机姓名_mysql 随机生成姓名函数,及模拟大量测试数据
  10. (转)国外Fintech创业者坦言:你不知道的Fintech三大困境
  11. ThinkPHP商城实战
  12. ORACLE11gR2安装XDB
  13. VMWare虚拟机序列号大全
  14. switchport port-security aging
  15. 电池管理系统BMS的常见测试方法
  16. 音视频开发(三十四):天空盒的实现原理
  17. 附近的人(使用<GeoHash>经纬度查询附近的人,并根据距离排序)
  18. 书评:薛定谔猫与生物学鸽子:《生命是什么?》出版75周年记
  19. 灰帽子python 读书笔记 1
  20. 计算机的基础知识---位(bit)、字节(byte)、编码(Encoding)和大小端

热门文章

  1. 校园 计算机网络设置路由器,Drcom校园网连接路由器怎么设置
  2. 高效工作-使用石墨文档进行信息收集
  3. 稻盛和夫—《活法》读后感
  4. 花生壳内网穿透操作文档
  5. vue权限管理实现思路
  6. 《活法》 -豆瓣评分8.4
  7. 计算机远程终端控制示意图,Windows远程控制完全指南
  8. win10虚拟机下安装ubuntu16.04详细教程(含锐捷联网教程)
  9. Gson 测试环境 date转换抛异常
  10. MPP文件怎么打开?五种方法总有最合适!