容器的组件在布局管理器帮助下,可以按照指定的位置进行摆放。布局管理器能够在容器的大小改变的时候,也能把组件放到准确的位置上去。AWT中所有的布局管理器都是LayoutManager的子类。
相比于AWT大量地引入了Windows函数,被称为重量级组件。Java 2中提供了轻量级的图像界面组件——Swing, Swing使用java语言实现,是以AWT平台为基础构建起来的新组件,使用Swing可以更轻松地编写出用户界面。
Swing从各个组件类的定义来看,所以的Swing组件只是比AWT组件前多了个一个字母“J”而已。
Swing中也存在容器,也可以使用布局管理器来为组件提供布局的管理。
2.2 Socket编程
Socket也被称为套接字,是用于描述IP地址和端口。应用程序通常通过套接字向网络发送请求或者应答网络的请求。java.net包中Socket和ServerSocket类 ,ServerSocket类用于服务器端,通常用该方法来new一个对象。ServerSocket ss=new ServerSocket(4444),在建立网络的连接时需要使用到Socket。当两个程序连接成功时,两端都会有一个Socket的实例,应用程序之间的信息的传递是通过对这个Socket来完成的。Socket中有3种频繁使用的方法:论文网
.Accept方法 ,顾名思义,就是服务器等待客户端的Socket来连接这个ServerSocket,这个方法是在没有客户端连接的时候是阻塞的。
. getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。
. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
2.3 Java数据库连接
Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口。有了JDBC可以更方便地查询到数据库中的内容以及对数据库进行更新。本系统使用的是MySQL数据库,需要导入一个专门用于连接mysql数据库的外部jar包,通过加载数据库驱动以及获取数据库连接,就可以开始轻松地对数据库中的数据进行访问。
2.4 线程以及集合框架文献综述
在Java中实现多线程比较容易,有两种方法,一种是继承Thread类,另一种是实现Runable接口。然后重写其中的run()方法,并且在创建的时候,调用start()方法将线程启动。
在本系统中利用到了多线程。主要用于多个学生客户端登陆教师服务器端的时候,对于服务器来说,每个学生客户端都是一个线程。服务器都将这些线程放在HashMap中按照学号进行管理。
Java集合框架是指Java的集合类。Java中提供的集合有ArrayList、Vector、HashMap、HashTable等。这些集合有的是线程安全的,比如Vector,有些不是线程安全的,如ArrayList。集合中可以存放数据,也可以存放对象。
在本系统中用到了集合框架中的HashMap,HashMap是键-值映射关系,通过键可以取到相应的值。
2.5 开发环境
考虑到开发本系统使用的是Java语言,因为Java是一种跨平台的语言,与运行平台的关系不大。我们选择Eclipse作为开发工具,Windows作为开发的平台。数据的选择中,因为系统本身就不是很大,所以不需要Oracle等大型数据库,选择MySQL作为系统数据库。