Swing

2024-06-22

Swing(精选4篇)

Swing 篇1

1 引言

目前, 很多学校为便于学生日常管理, 配备辅导员或班主任等管理人员来管理学生的学习和生活。为了方便讨论, 下面所提到的辅导员都是指这类人员。

了解学生的基本情况是辅导员做好本职工作的重要条件之一。学生管理部门也希望通过大赛或考试等途径评测辅导员了解学生基本信息的程度。本软件正式基于这个目的开发的。

软件运行界面如图1所示。

2 开发环境

基于Java平台, 利用NETBEANS6.1开发的桌面软件。该软件采用MySQL数据库存储学生信息和辅导员信息, 并采用Navicat作为数据库操作前端图形界面。

SWING是一个用于开发Java应用程序用户界面的开发工具包, 它以抽象窗口工具包 (AWT) 为基础, 且具备跨平台特点。借助SWING的强大功能, 开发人员只用很少的代码就可以创建优雅的用户界面。

NETBEANS是由Sun Microsystems公司建立的开放源代码的软件开发工具, 可用于多种不同类型软件的开发。

MySQL Server是一个小型关系型数据库管理系统, 开发者为瑞典MySQL AB公司。由于其体积小、速度快、总体拥有成本低, 尤其是开放源码这一特点, 许多中小企业为了降低成本而选择MySQL作为数据库。

Navicat是MySQL前端图形用户界面, 它可以针对本地或远程的MySQL服务器进行管理, 可以运行于3种操作系统平台上———Windows、Mac OS X和Linux。

3 软件设计

3.1 目标

本软件主要用于检测辅导员的基本功, 考察他们是否充分了解学生的情况, 比如:学生家庭情况、学习情况、思想情况等, 以便针对学生的实际情况更好地管理和帮助学生。

(1) 本软件应提供下拉菜单, 供检测者选择被测人员。

(2) 为了使得检测尽可能科学合理, 软件具备随机抽取功能, 能够随机抽取一张学生图片, 并在屏幕上显示。当检测者单击“开始”按钮后, 学生图片按照一定的速度在屏幕中切换;单击“停止”按钮后, 图片不再切换。当图片停止切换后, 先由被测人员讲解屏幕显示学生的具体情况, 然后由检测者决定是否显示学生的详细信息, 并针对被测者讲解的具体情况给被测者打分。

(3) 为了适合不同情况的需要, 软件应具备图片切换速度调整功能 (图1中的滑动杆) 。

3.2 数据库

在MySQL Server中创建数据库“instructorsexam”, 并建立数据表“teacher”和“student”。数据表“teacher”的主键是“id”, 数据表“student”的主键是联合字段“teacherID”+“id”。建立数据表可以使用Navicat软件, 如图2所示。

数据表“teacher”和“student”的字段含义如表1和表2所示。数据表“student”的字段“teacherID”与“teacher”的字段“id”具有多对一的关系。

数据表“teacher”的定义如下:

数据表“student”的定义如下:

需要说明的是, 学生照片应按照一定规格制作, 建议尺寸295*413像素。照片可以存储在数据库中, 也可以直接存放在软件安装路径下。本软件为了简单起见, 首先将学生图片编号 (图片编号与数据库中的学生编号一致) , 然后将图片分别存放在“photo”文件夹中以教师编号为子文件夹的路径下。

软件运行过程中, 用户一旦选定了辅导员, 并单击了“开始”按钮, 软件便在指定路径下搜寻学生照片, 并根据找到的图片数量产生一个随机整数i, 并显示以整数i为编号的学生图片。随机显示学生图片的过程会一直进行下去, 直到用户单击了“停止”按钮为止。

3.3 界面

在开发环境NetBeans中创建桌面应用程序InstructorsExam, 并设计如图1所示的主界面“MainJFrame.java”。主界面“MainJFrame.java”中涉及界面元素定义的代码以及全局变量的定义如下所示:

3.4 核心代码

本软件所有Java类文件都在包myPackage中, 包myPackage包含的类文件如图3所示。其中类“DbBean.java”负责数据库操作以及系统初始变量的定义;类“LoadImage.java”负责装载和设置图片;类“MainJFrame.java”负责系统初始化, 同时为用户提供操作界面;类“MySlidder.java”负责定义和初始化速度滑杆控件;类“NewTimerTask.java”负责产生随机数、设置学生图片和其他信息;类“TimerCallClient.java”负责定义定时器并配置定时器参数;类“OpFile.java”负责完成图片文件的操作;类“Student”和类“Teacher”是两个实体类, 分别负责定义学生和教师对象。

下面就“开始”按钮所涉及的关键代码做出说明。

单击“开始”按钮后, 软件系统首先获取学生图片信息, 并将图片ID列表保存在变量“photoList”中;接着调用定时器类“TimerCallClient”的“run”函数, 由该函数创建类“NewTimerTask”的实例变量“timerTask”, 并将参数传递给变量“timerTask”, 由变量“timerTask”的“run”函数设置学生图片和学生信息。各函数之间的调用关系如图4所示。

代码1是类“MainJFrame”中的部分代码, 代码2是类“TimerCallClient”中的主要代码, 代码3是类“NewTimerTask”中的主要代码。具体如下所示 (注意“TimerCallClient”和“NewTimerTask”中“run”函数的参数列表) :

代码1:

代码2:

代码3:

4 软件安装

软件开发完成并测试通过后, 即可进行安装。安装前需要在开发环境“NeatBean”中生成jar文件“InstructorsTest.jar”。

软件安装比较简单, 主要是配置好Java工作环境和数据库环境。建议按照如下顺序进行安装并进行测试。

(1) 安装jdk1.6环境平台。

(2) 安装配置MySQL 5.0数据库服务器。安装配置数据库服务器时, 建议将数据库服务器默认语言配置为“gbk”;并确保MYSQL服务正常启动。

(3) 安装Navicat数据库操作客户端软件, 并确保Navica能够正常访问数据库服务器。

(4) 通过Navicat软件登录到数据库服务器, 并创建数据库“instructorsexam”, 在数据库“instructorsexam”中建立数据表“teacher”和“studeent”, 并输入几条测试记录。

(5) 由于本软件假定学生照片与运行文件放在同一路径下, 因此, 首先将整理好的学生照片统一放在“photo”文件夹中 (当然, 需要为每个辅导员建立一个子文件夹, 子文件夹的名称与数据库中辅导员的ID一致) , 然后将图片文件夹“photo”、运行文件“InstructorsTest.jar”放置在磁盘同一路径下。

(6) 双击文件InstructorsTest.jar即可运行软件。

5 结语

基于实际开发的软件项目, 系统地介绍了基于Java平台的小型桌面软件开发的一般流程, 给出了界面设计、数据库设计、核心代码;同时为了便于读者进行测试, 还给出了软件安装方法。

参考文献

[1]netbeans.org[CP/OL].http://netbeans.org/kb/docs/web/jsf20-support.html.

[2]http://www.onjava.com/pub/a/onjava/2005/07/13/jsfupload.html, 2005.

[3]The Java EE 5 Tutorial.http://java.sun.com/javaee/5/docs/tuto-rial/doc/index.html.

[4]刘永立, 白地动.基于Java平台的网上成绩管理系统的设计与实现[J].中国教育信息化, 2010, 1:48-52.

[5]刘永立.B/S结构教学管理系统的设计[J].电脑编程技巧与维护, 2009, 18:121-123.

[6]http://www.w3schools.com/.

[7]http://www.htmlhelp.com/.

[8]http://www.w3c.com/.

[9]Madhu Siddalingaiah Stephen D.Lockwood.Java开发人员指南.机械工业出版社, 2000.

[10]殷兆麟.Java语言程序设计.高等教育出版社, 2002.

Swing 篇2

swing作名词时意思是“秋千”,转化为动词时,其基本意思是“摇摆”,指像秋千一样有规律地前后或来回地摆动或以一点为中心地转动。swing引申还可表示“剧变,改变态度”“突变”“下跌”。

swing可用作及物动词,也可用作不及物动词。用作及物动词时,接名词或代词作宾语,也可接以形容词充当宾语补足语的复合宾语。

swing的过去式和过去分词都是swung。

swing用作动词的用法例句

This will swing public opinions against the government.这将使公共舆论转而反对政府。

The children were swinging on a rope.孩子们抓着绳子荡来荡去。

Swing 篇3

1. 需求调研

现代社会是一个高速信息化的社会, 数字化生存已经一步步走进我们的生活与工作。现在人们管理各种信息已经不像以前那样需要用纸和笔来记录, 而是用计算机。使用计算机来管理信息, 具有手工管理无法比拟的优点, 能够极大提高管理效率, 节约资源, 也是适应信息化建设发展趋势的重要因素。

目前, 实验室工作繁杂、资料重多, 虽然各类管理信息系统已进入高校, 但并不适用, 而对于实验室管理来说, 目前还没有一套完整的、统一的系统。因此, 开发一套适合Java实验室、兼容性好的管理系统是很有必要的。

本系统是根据Java实验室的具体需求设计的。在日常的实验室工作中, 管理员能够方便得管理实验室的日常事务, 包括增加、删除、修改成员, 安全管理, 立项验收管理, 资源管理等。开发本系统可以减轻实验室工作压力, 比较系统地对实验室成员信息, 成员入室, 立项验收进行管理, 同时, 可以减少劳动力的使用, 加快查询速度、加强管理, 使各项管理更加规范化。

2. 现有系统存在问题的分析

当今时代, 全国各高校的各类管理系统并非一个新的课题, 但也有的学校根本就没有信息任何管理系统, 所有的工作几乎还是手工操作来完成。随着社会的发展, 信息化是社会进程的必然趋势, 学校管理只有快, 准, 精才能发挥其价值。

有些学校虽使用了管理系统, 但是仍然存在很多问题, 问题一日不解决, 效率就一日提不上去。比如有的系统很不完善到处是漏洞, 可以说是千疮百孔, 这样极不完善的系统对管理来说是没有任何保障的。

另外, 很多新开发的系统不具有跨平台性。这样的系统不能方便的移植, 应用价值降低。

二、系统设计

1. 系统结构设计硬件平台:PC

软件平台:Windows系列操作系统或Linux操作系统、Java虚拟机。

数据库:Microsoft Access 2000

设计语言:Java2、Java Bean、SQL等。

2. 系统总体功能设计

基于Swing的实验室管理系统主要包括登录面板和主面板的设计。其中, 登录面板包括背景设置和登录模块的设计。主面板的设计包括成员管理模块 (增加、修改、删除成员等) 和日常管理模块 (部门简介面板、梯队建设、入室申请、安全管理、资源管理、立项验收等) 的设计、透明文本域的设置、背景设置等。

3. 数据库设计

本系统在成员管理模块需要用到数据库, 采用Microsof Access制作数据库Javalab, 包括表renyuan, 定义的字段极其数据类型如右图所示, 其中number字段是主键。

4. 系统所用文件及类结构设计

MF.java包含MF, Login, MFrame三个类, MF是主类, Longin类定义登录模块, MFrame定义主界面整体布局和背景。

RI.java包含五个类, 其中, Cy类定义成员信息, Add Cy类定义增加成员, Edit Cy定义编辑成员, Del Cy定义删除成员, Cy Searchnumber定义查找成员。

JD.java包括JD类, 用来定义文件流来打开文档及图像文件。

Split1.java中的Split1类包括两个内部类:Table Pane和Tree Pane, 分别用来定义中分窗体的表格面板和树面板。

DS.java的两个类Cyb和Database定义数据库的相关操作。

5. 所用类详细设计

MF类是实验室管理系统的主运行类。包括mian方法和MF构造方法。

M F r a m e类是定义实验室管理系统主界面的类, 包含button Name, bj1, button Number等成员变量和MFrameaction Performed等方法。定义了主界面的文本域, 十个按钮, 背景图片, 最后设置总体布局, 为了美观, 设置文本域和按钮都是透明的。

Longin类是定义登录模块的类。包含juserlabel, login1等成员变量和Login和main等方法。类中定义了用户名和密码域, 确定和取消按钮极其事件响应, 最后定义了背景图片并设置总体布局。

Add Cy类定义了成员添加模块的相关变量和方法。Del Cy类定义了成员删除模块的相关变量和方法。Edit Cy类定义了成员编辑模块的相关变量和方法。

Cy Searchnumber类定义了成员查找 (根据序号查找) 模块的相关变量和方法。

JD类定义了文件流的相关操作所用变量及方法。实现:入室申请, 梯队建设, 安全管理, 立项验收, 资源管理, 政策法规等功能。

Split1类定义了部门简介模块的中分窗体, 包括树面板和表格面板。Tree Pane类和Table Pane类是Split1类的内部类。两个类定义了树的节点, 叶子结构, 表格的布局等。

Database类定义了数据库的相关操作, 包括:

加载JDBC驱动程序, 建立和数据库的连接, 执行SQL语句, 存放处理结果, 与数据断开连接

DS类定义了数据库和成员信息管理的增、删、改操作的相关变量和方法。

三、项目创新点和应用前景

本系统采用纯java语言编写, 不受任何平台限制。一般的管理系统采用菜单操作, 界面不美观且操作不方便。而本系统结合本校java实验室的实际情况, 并且采用巨型按钮操作, 加上透明背景, 美观且操作方便。

本项目还有很大的发展空间, 如给成员资料加上照片, 实现图书的借还功能等。项目成果可应用于各大高校及研究机构的实验室管理。

四、结束语

本项目采用的技术基于Swing, 主界面模块和登录界面模块的各项设计都是通过高级GUI编程和Java Bean来实现。部门简介面板的树面板设计树形结构思想。日常管理模块, 应用流与文件技术。成员信息管理模块中, 通过JDBC编程来实现增删改成员对数据库的相关操作。

参考文献

[1]张居敏:Java程序设计经典教程.电子工业出版社, 2008

[2]Cay S.Horstmann:Java核心技术.机械工业出版社, 2008

Swing 篇4

Java语言的跨平台性使它成为计算机上的世界语,作为计算机的世界语,它的国际化是必要的。另外,Internet和其他分布网络的迅速发展也增加了创建国际化软件必要性和重要性。基于Java语言的Swing组件提供了对界面国际化的支持:在创建一个Swing组件之前,把显示文本国际化然后再设置给该组件。该方法有一个明显的缺点:无法在软件运行期间,选择不同的区域及语种来改变界面。本文通过分析Swing的体系结构,提出一种方案解决该问题

1 Swing体系结构分析

Swing采用了MVC的设计模式,即“模型-视图-控制”,其中:模型用来保存内容;视图用来显示内容;控制器用来控制用户输入。但与经典MVC模式相比,Swing的设计采用了一种简化的模式:将视图和控制器合并到一个代理对象中。如图1所示:

这些代理称为Swing组件的UI (user interface)。每一个Swing组件都对应有一个UI,它继承自抽象类ComponentUI,并重载paint()方法,负责绘制该Swing组件的界面,包括文本及风格。因此,可以通过将同一Swing组件与不同类型的ComponentUI的子类关联,实现显示不同的界面风格。对于同一界面风格下,这些设置由类LookAndFeel的子类来负责,因此LookAndFeel的子类中也包括每个组件对应UI的设置。例如WindowsLookAndFeel设置Windows风格的界面:

最后,由UIManager负责设置整个界面的样式,调用其setLookAndFeel (LookAndFeel),设置统一的界面风格。

2 动态国际化实现

文中提出的方案通过继承WindowsLookAndFeel并重载其initClassDefaults()方法,在其中将Swing组件与自定义的ComponentUI关联,并在自定义ComponentUI中拦截将要显示的文本,将其国际化然后再进行显示。下面以JLabel控件为例,展示如何在Window界面风格下国际化该控件。

2.1 自定义ComponentUI:MLWindowsLabelUI

本文通过继承WindowsLabelUI,来保持一致的Windows风格,并重载其createUI()和paint()方法实现JLabel控件的国际化。实现过程中需特别注意:

(1)首先必须重载父类的createUI方法,因为UIManager会调用该方法获得其实例,若不重载该方法仅会获得其父类的实例

(2)通常也并不会真的去重载paint()方法,因为要渲染整个控件是个很麻烦的,只需要找出其渲染文本的那个方法然后重载,再调用其父类对应方法传入已国际化的文本。当然要找出合适的方法重载也有点麻烦,需要大概把paint()执行流程通读一遍。对于WindowsLabelUI本文重载其layoutCL()方法。MLWindowsLabelUI代码如下:

(3)在pain()方法中被拦截的文本通常并不是正在要显示的文本,仅仅是要显示文本的键值,需通过该键值和当前所选择的语种在资源文件或数据库中查找对应的文本。

2.2 关联组件和自定义ComponentUI

本文通过继承WindowsLookAndFeel,并重载其initClassDefaults方法,将自定义的ComponentUI和Swing组件关联。MLWindowsLookAndFeel代码如下:

最后,将MLWindowsLookAndFeel交给UIManager,由其负责统一管理界面。

2.3实验验证

本文解决方案已在JDK1.5平台下成功实现,图2及图3显示可在软件运行期间动态地切换语言,且能成功地对JLabel标签进行国际化。

3 结束语

本文提出通过自定义ComponentUI对Swing组件显示文本进行国际化,并可在软件运行期间动态地切换语言,为基于Swing组件开发界面提供很好的灵活性和对用户的易用性。文本中的方案现在只能局限于Windows风格的界面国际化,下一步可以考虑使用一些设计模式来改善该方案,使得使用较少代码即可实现所有风格的界面国际化。

摘要:Swing组件提供的国际化解决方案可有效地实现界面的国际化,但无法在软件运行时动态地切换语言。通过分析Swing的体系结构,提出一种新的方案,使基于Swing组件的界面能在运行时动态切换语言,提高软件的易用性。

关键词:Java,Swing,国际化,MVC

参考文献

[1]David Flanagan.JFC技术手册[M].江帆,郭春,张静,译.北京:中国电力出版社.2003.

[2]王昆,张力生,张化川.Java Swing中的渲染器机制[J].重庆工学院学报(自然科学版),2008(10).

【Swing】推荐阅读:

上一篇:微螺钉支抗种植体下一篇:历史文化信息

本站热搜

    相关推荐