javaswing布局管理器.doc_第1页
javaswing布局管理器.doc_第2页
javaswing布局管理器.doc_第3页
javaswing布局管理器.doc_第4页
javaswing布局管理器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学籍管理系统 Java Swing布局管理器 科尔沁艺术职业学院计算机科学与技术系2008级(普理)班 曹容赫指导教师 苏春源摘 要: 院校规模不断扩大,学生数量不断增多,原来的人工记录的方式,甚至是一般的数据存储管理软件不能满足学生管理的需求。传统管理方式维护数据性能低、查询信息不方便、选课效率低、维护成绩信息的工作量大,为弥补以上缺陷,便于信息管理与维护,提高管理效率,从而开发此学籍管理系统,以实现学院的信息化管理。关键词 Java.*Swing 用户名管理Kerqin Art Institute of evaluating teaching career systemKerqin Art Vocational College, Department of Computer Science and Technology 2008 (2)Cao rongheAbstract: The institutions have been expanding, increasing the number of students, the original way of manual records, or even a general data storage management software can not meet the management needs of students. Performance of the traditional low-maintenance data management, query information is not convenient, course selection, low efficiency, heavy workload to maintain performance information for more than make up for deficiencies, facilitate information management and maintenance, and improve management efficiency, in order to develop the school management system to achieve School of Information Management.Key words java*swing The users name manages引言 为了学院更方便的管理各院系开设的课程,让学生更方便地选课并及时了解个人课程及成绩信息,同时提高学院的信息化水平,学籍管理系统对成绩管理、学籍管理、班级管理、课程设置、选课信息等几个方面进行管理,真正实现管理信息化,且弥补了过去传统的数据信息管理的低效率问题。1、需求分析 经过讨论此系统的开发是有必要的,针对此系统的使用群体有学生、家长、教师等。此系统可以根据相应信息对学生信息进行更有效的管理。还应用了Java *Swing 来编写主体布局界面,使操作更简单、更实用。2、Java *Swing Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。Swing组件都是AWT的Container类的直接子类和间接子类。Swing包比AWT包提供了更加强大的图形界面开发功能,在AWT包的基础上增加了许多新的组件。2.1、主窗体界面的设计 在开发系统的各个功能模块之前,首先要完成主界面的设计,此系统有两个主窗体,教师客户端主窗体和学生客户端主窗体,不同的是学生客户端主窗体与教师客户端主窗体功能有差异。写主界面的时候要为各个功能模块留出位置,以便将各个功能模块添加到主窗体,开发主界面的代码框架如下(这里写的是教师客户端主窗体):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类是一个自定义的类,这里并没有给出此类的源代码。要显示一个层次关系分明的一组数据,用树状图表示能给用户一个直观而易用的感觉,JTree类如同Windows的资源管理器的左半部,通过点击可以打开、关闭文件夹,展开树状结构的图表数据。JTree也是依据M-V-C的思想来设计的,Jtree的主要功能是把数据按照树状进行显示,其数据来源于其它对象。2.2、主窗体的初始化方法 2.1中编写主窗体框架的代码时,其中的一些用于初始化窗体方法的具体实现没有给出,下面是对初始化窗体方法的具体实现:1 public void initialPanel()2/初始化各功能模块3 /初始化代码在后面各模块的开发过程中逐一开发添加45/初始化树状列表控件的方法6public void initialTree()78dmtnRoot.add(dmtn1);9dmtnRoot.add(dmtn2);10dmtnRoot.add(dmtn3);11dmtnRoot.add(dmtn4);12dmtn1.add(dmtn11);13dmtn1.add(dmtn13);14dmtn2.add(dmtn21);15dmtn2.add(dmtn22);16dmtn22.add(dmtn221);17dmtn22.add(dmtn222);18dmtn3.add(dmtn31);19dmtn3.add(dmtn32);20dmtn3.add(dmtn34);21dmtn4.add(dmtn42);2223public void initialJpy()24/将各功能模块添加到面板中25 /将面板设置为卡片布局26jpy.setLayout(new CardLayout();27cl=(CardLayout)jpy.getLayout();28/各功能模块对象将在后面各模块的开发过程中逐一添加到该面板中2930public void initialFrame()31 /设置窗体的标题、大小及其可见性32this.add(jsp1);33jsp1.setDividerLocation(200);34jsp1.setDividerSize(4);35Image image=new ImageIcon(ico.gif).getImage(); 36this.setIconImage(image);37this.setTitle(教师客户端);38Dimension screenSize = Toolkit.39 getDefaultToolkit().getScreenSize();40int centerX=screenSize.width/2;41int centerY=screenSize.height/2;42int w=900;/本窗体宽度43int h=650;/本窗体高度44/设置窗体出现在屏幕中央45this.setBounds(centerX-w/2,centerY-h/2-30,w,h);46this.setVisible(true);47/窗体全屏48this.setExtendedState(JFrame.MAXIMIZED_BOTH);49第14行用于初始化各功能模块的对象,但是由于各功能模块暂时没有开发,所以暂时什么都没做,这里代码会随着各功能模块的完成而逐步添加。第522行是树状列表控件初始化,将各个节点挂在相应的父节点上。剩下的代码是主窗体显示效果的初始化。虽然主窗体完成了实现,但单击各个节点都不会起作用,所以还需对主窗体的树的各个节点即树状列表控件进行注册鼠标监听器。2.3、注册鼠标事件监听器对节点进行了注册鼠标监听器才能解决单击节点不起作用的问题,具体代码框架如下:1 public void addListener()2/为树状列表控件注册鼠标事件监听器3jt.addMouseListener(4 new MouseAdapter()5 6 public void mouseClicked(MouseEvent e)7 /实现mouseClicked方法8 DefaultMutableTreeNode dmtntemp= /得到当前选中的节点对象9 (DefaultMutableTreeNode)jt.10 getLastSelectedPathComponent();11 MyNode mynode=(MyNode)dmtntemp.getUserObject();12 /得到自定义节点对象13 String id=mynode.getId(); /得到选中节点的名称14 /根据id值显示不同的卡片15 if(id.equals(0)16 /欢迎页面17 cl.show(jpy,welcome);18 19 else if(id.equals(11)20 /退出系统21 int i=JOptionPane.showConfirmDialog(jpy,22 您确认要退出出系统吗?,询问,23 JOptionPane.YES_NO_OPTION,24 JOptionPane.QUESTION_MESSAGE);25 if(i=0)26 27 System.exit(0);28 29 /点击确认,退出系统30 else if(id.equals(13)31 /更改密码页面32 cl.show(jpy,changepwdteacher);33 changepwdteacher.setFocus();34 35 else if(id.equals(21)36 /添加学生页面37 cl.show(jpy,newstu);38 newstu.setFocus();39 40 else if(id.equals(221)41 /学生信息查询页面42 cl.show(jpy,teachSearchInfo);43 teachSearchInfo.setFocus();44 45 else if(id.equals(222)46 /成绩查询页面47 cl.show(jpy,stuscore);48 stuscore.setFocus();49 50 else if(id.equals(31)51 /选课管理页面52 cl.show(jpy,coursemanage);53 coursemanage.updateTable();54 55 else if(id.equals(32)56 /成绩录入页面57 cl.show(jpy,gradeindb);58 59 else if(id.equals(34)60 /添加课程页面61 cl.show(jpy,newcourse);62 63 else if(id.equals(42)64 /添加班级页面65 cl.show(jpy,newclass);66 newclass.setFocus();67 68 69 70 );71/将展开节点的鼠标点击次数设为172jt.setToggleClickCount(1);73该方法主要是通过MouseAdapter鼠标适配器为树状列表添加鼠标事件监听器。811行获得选中节点的最后一个路径组件,进而获得存储在Object对象,取出id值的属性。根据属性对应显示对应模块。1929行是退出系统时的一个节点事件。该功能模块比较简单,所以直接写出。2.4、MyNode类的开发在开发创建树节点时曾经用到一个类MyNode,该类是自定义的一个类,主要用于创建节点时的对象参数。该类的具体代码如下:class MyNode /自定义的初始化树节点的数据对象的类private String values; /声明values的属性private String id; /用于确定节点id的属性public MyNode(String values,String id) /构造器this.values=values; /设置values

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论