`
qinweiping
  • 浏览: 132791 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

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

阅读更多

学了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"))
	           	      
	              }
	           }
		                       );
		//将展开节点的鼠标点击次数设为1
		jt.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对象的属性值来判断单击是哪一个节点,从而确定是哪一个功能模块

 

2
5
分享到:
评论

相关推荐

    C#ado.net学生成绩管理系统+SQL,菜鸟级别,简单易懂

    最后,了解如何打包应用程序并生成安装程序,使得其他用户可以方便地下载和安装这个学生成绩管理系统,也是开发过程中不可或缺的一部分。 通过学习和实践这个简单的学生成绩管理系统,初学者可以掌握C#编程、ADO...

    学生成绩管理系统需求文档

    - **目的**:文档旨在明确描述学生成绩管理系统的整体结构、功能模块及其具体需求,为后续的软件设计与开发提供清晰的指导方向。它不仅是软件设计的基础,也是进行测试的主要依据,同时还作为用户了解软件功能需求的...

    使用 Qt 构建、C++ 作为底层开发的学生成绩管理系统,支持对学生成绩的增删改查、排序、汇总等功能。.zip

    在学生成绩管理系统中,C++作为底层开发语言,可以实现系统的核心逻辑和数据处理,如数据库操作、成绩计算、排序算法等。C++的类和对象机制使得代码结构清晰,易于维护,同时其标准模板库(STL)提供了丰富的数据...

    Java学生管理系统——菜鸟

    【Java学生管理系统——菜鸟】 Java学生管理系统是一款针对初学者设计的项目,旨在帮助他们理解和实践Java编程语言以及数据库管理的基本概念。这个系统主要是用来管理学生的信息,如姓名、学号、年龄、专业等,同时...

    使用 Qt 构建、C++ 作为底层开发的学生成绩管理系统,支持对学生成绩的增删改查、排序、汇总等功能.zip

    学生成绩管理系统是教育信息化的一个重要组成部分,其设计和开发需要充分考虑到系统性、易用性、安全性和稳定性。通过使用Qt框架和C++语言,结合高效的关系型数据库技术,可以构建出一个功能全面、操作简便、性能...

    基于Qt的学生成绩管理系统.zip

    总的来说,"基于Qt的学生成绩管理系统"是一个综合性的项目,涵盖了软件开发的多个方面,包括前端界面设计、后端数据库操作、数据模型与视图的绑定以及系统集成。通过研究这个项目,不仅可以学习Qt框架的使用,还能...

    学生成绩管理系统

    学生成绩管理系统是一种基于信息化技术,旨在帮助学校和教师更高效地管理学生的学习成绩和相关信息的软件应用。这种系统通常采用MVC(Model-View-Controller)架构设计,结合Java Web技术如JSP(JavaServer Pages)...

    基于qt开发的简易学生成绩管理系统.zip

    【标题】:基于Qt开发的简易学生成绩管理系统 该系统是计算机专业毕业生的一个常见设计项目,主要目标是实现一个用户界面友好、功能完善的学生成绩管理应用。Qt是一个跨平台的应用程序开发框架,由Qt Company提供,...

    毕设&课程作业_基于C#的.NET framework框架开发的简易学生成绩管理系统.zip

    开发一个简易的学生成绩管理系统,不仅能够帮助教师高效地管理学生的成绩,还能为学生提供一个查询个人成绩的平台。本次提供的源码是基于C#语言和.NET framework框架开发的学生成绩管理系统,旨在为计算机系学生提供...

    基于python+Django的管理信息系统——学生成绩管理系统.zip

    【基于Python+Django的管理信息系统——学生成绩管理系统】 Python和Django是现代Web开发中的强大组合,尤其适用于快速构建高效、可扩展的管理信息系统。在这个基于Python和Django的学生成绩管理系统中,我们可以...

    SSM+Layui学生成绩管理系统.zip

    SSM(Spring、SpringMVC、MyBatis)与Layui结合的学生成绩管理系统是一套基于Java语言开发的Web应用,旨在为学校等教育机构提供一个便捷、高效的管理学生考试成绩的平台。该系统采用了当前流行的开源框架技术,将...

    基于vue + springboot的学生成绩管理系统.zip

    总的来说,这个基于Vue + SpringBoot的学生成绩管理系统展示了现代Web应用开发的技术栈,涵盖了从前端到后端的完整流程,对于学习和理解全栈开发具有很高的参考价值。通过这个项目,开发者可以深入掌握前端Vue.js...

    基于java实现的在校学生成绩管理系统(控制台版本)

    为了满足这一需求,开发出了一个基于Java语言实现的在校学生成绩管理系统,此系统为控制台版本,具体功能包括但不限于学生信息和成绩的增删改查,以及相关的成绩统计查询功能。 该系统的开发环境选择了Java ...

    这是一个基于MySQL的学生成绩管理系统.zip

    在这样的背景下,开发一个基于MySQL的学生成绩管理系统显得尤为重要,它不仅能够帮助教育机构高效地处理大量的学生成绩数据,还能通过数据分析提供决策支持,促进教育工作的科学化和规范化。 MySQL作为一个开源的...

    java做的学生成绩管理系统

    Java编写的学生成绩管理系统是一种基于计算机技术的教育管理工具,它主要用于收集、存储、管理和分析学生的学术成绩。这样的系统可以极大地提高教育机构的工作效率,减少人为错误,并为教师、学生和家长提供方便的...

    C#大作业学生管理系统.zip

    【描述】提到“大二菜鸟做的很普通的学生管理系统”,这暗示了该系统可能由一名大二学生初学者创建,可能功能相对基础,但已经能够展示C#的基本应用和数据库管理的概念。初学者在设计这样的系统时,通常会学习如何...

Global site tag (gtag.js) - Google Analytics