java的界面设计报告

合集下载

Java桌面应用开发

Java桌面应用开发

优化SQL语句:避免使用复杂的SQL语句, 使用索引和查询优化器
异步处理:将耗时操作异步执行,避免阻 塞主线程
合理使用多线程:根据任务性质合理分配 线程,提高并发处理能力
监控系统资源:CPU、内存、磁盘、网络等 性能优化方法:减少内存占用、优化算法、使用多线程等 工具:JProfiler、VisualVM等 优化效果评估:性能测试、用户反馈等
需求分析:明确应用需求,确定功能模块 设计阶段:设计应用界面和功能模块,制定开 发计划 开发阶段:编写代码,实现功能模块,进行单 元测试
测试阶段:进行集成测试、系统测试和用户验 收测试 部署阶段:将应用部署到目标平台上,进行性 能优化和调试 维护阶段:对应用进行维护和升级,解决用户 反馈的问题
Java桌面应用界面 设计
Java桌面应用开发
作者:
目录
添加章节标题
Java桌面应用开发 基础
Java桌面应用开发简介 Java桌面应用的特点 Java桌面应用开发环境搭建
Java桌面应用开发流程 Java桌面应用开发工具介绍 Java桌面应用开发案例分析
JDK安装:下载并安装JDK,设置JAVA_HOME 环境变量
用户身份验证:确保 用户身份的真实性和 唯一性
安全协议:使用 SSL/TLS等安全协议进 行数据传输和存储
密码管理:要求用户 设置强密码,并定期 更换
异常处理:对用户异 常行为进行监控和报 警
恶意软件类型:病毒、木马、间谍软件等 攻击方式:通过网络、电子邮件、USB设备等传播 防范措施:安装防病毒软件、定期更新系统补丁、提高安全意识等 安全编程:使用安全的编程实践,如输入验证、数据加密等
Java桌面应用功能 实现
文件读取:使 用 FileInputStream 类读取文件内 容

java实验报告

java实验报告

java实验报告Java实验报告实验名称:Java图形界面编程实验对象:Java初学者实验目的:通过实际操作掌握Java图形界面编程的基本知识和技巧实验过程:1. 实验准备:安装Java JDK开发环境,并准备好IDE工具(如Eclipse或IntelliJ IDEA)2. 创建工程:打开IDE工具,新建一个Java工程,并指定工程名和保存路径3. 创建界面:在工程上新建一个Java类,命名为"MainUI"4. 设计界面:在"MainUI"类中使用Swing或JavaFX等GUI库,设计界面布局和组件5. 添加事件监听:在"MainUI"类中添加事件监听器,使组件与逻辑代码进行关联6. 编写逻辑代码:在"MainUI"类中编写逻辑代码,实现界面交互和功能实现7. 编译运行:将工程编译成可执行文件,并运行程序,查看界面效果和功能是否符合预期8. 调试修复:根据实际运行情况,对代码进行调试和修复,确保程序的稳定性和正确性9. 测试验证:使用不同输入数据对程序进行测试,验证程序的鲁棒性和准确性10. 总结反思:对实验过程进行总结和反思,提出改进和优化的建议实验结果:通过实验,我成功创建了一个简单的Java图形界面程序,并实现了基本的交互和功能。

在界面设计方面,我使用了Swing库进行布局和组件的添加,通过事件监听器实现了按钮点击和文本框输入的监听。

在逻辑代码方面,我实现了简单的计算器功能,能够进行加减乘除等基本运算。

通过测试验证,程序运行稳定,结果准确。

实验心得:通过这次实验,我对Java图形界面编程有了更深入的了解和掌握。

我学会了使用Swing或JavaFX等库进行界面设计,以及如何添加事件监听器和编写逻辑代码。

通过实际操作,我发现编写图形界面程序相对于命令行程序更加复杂,需要考虑到用户的交互和界面布局,还需要注意代码的可读性和可维护性。

Java实验

Java实验

实验一熟悉Java开发环境(验证性2学时)一、实验目的与要求:1 掌握Java Application程序的开发过程并编写第一个Java Application程序*2 掌握Java Applet程序的开发过程并编写第一个Java Applet程序。

*3 练习简单的HTML文件配合Java Applet使用。

4 熟悉jdk的使用二、实验内容:1 编写一个Java Application程序,在屏幕上显示”This is my first java program!”.*2 编写第一个Java Applet 程序,在屏幕上显示”This is my first Java Applet!”三、实验步骤:1、jdk的使用jdk开发工具包可以从网站下载,jdk不是集成编译环境,须手动运用命令行程序进行编译和解释执行1)编辑.java文件可以在记事本或其他纯文本编辑器中编辑,保存时把文件扩展名定为.java即可,当然要注意文件名命名的要求2)编译生成.class文件进入dos系统进行编译(如图1.1所示),格式如javac MyFirstApplication.java,要注意图1.1进入命令行看javac.exe的路径并且MyFirstApplication.java文件路径和javac.exe路径一样。

编译成功后就能在浏览器中看见多了一个MyFirsApplication.class或更多的.class文件。

如图1.2所示图1.2使用jdk编译MyFirstApplication.java文件3)解释执行Application程序:同样是在dos系统下解释执行,格式如java MyFirstApplication,注意.class后缀别加,如图1.3所示。

图1.3解释执行MyFirstApplication.class程序* applet程序进入dos系统进行编译,格式如javac MyFirstApplet.java,要注意看javac.exe的路径并且MyFirstApplet.java文件路径和javac.exe路径一样。

Java17第十四章2-界面设计swing

Java17第十四章2-界面设计swing
安卓越科技北京有限公司33wwwanjoyocom安卓越科技北京有限公司34wwwanjoyocom安卓越科技北京有限公司35wwwanjoyocom安卓越科技北京有限公司36wwwanjoyocom安卓越科技北京有限公司37wwwanjoyocom安卓越科技北京有限公司38wwwanjoyocom安卓越科技北京有限公司39wwwanjoyocom安卓越科技北京有限公司40wwwanjoyocom安卓越科技北京有限公司41wwwanjoyocom安卓越科技北京有限公司42wwwanjoyocom安卓越科技北京有限公司43wwwanjoyocom安卓越科技北京有限公司44wwwanjoyocom安卓越科技北京有限公司45wwwanjoyocom安卓越科技北京有限公司46wwwanjoyocom2d图形的绘制安卓越科技北京有限公司47wwwanjoyocomimportjavaawtborderlayout
JPopupMenu:弹出式菜单组件
安卓越科技(北京)有限公司
18
import java.awt.Color; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class PopupMenuTest { static JPopupMenu popup=null; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(200,300,200, 300); frame.setTitle("我的第一个小板凳"); //设置不允许调整窗口的大小 frame.setResizable(false); frame.setBackground(Color.ORANGE); popup = new JPopupMenu(); popup.add("徐明华"); popup.add("张燕君"); popup.add("徐诗佳"); popup.add("王子昊"); popup.setName("右击菜单"); frame.add(popup);//在窗体上加右击菜单 frame.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3){ popup.show(e.getComponent(), e.getX(), e.getY()); } } });//添加事件监听器 frame.setVisible(true);//显示窗体}}

java图形用户界面实验报告

java图形用户界面实验报告

java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。

二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。

2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。

3. 编写Java代码,实现窗口界面的布局和交互功能。

三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。

2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。

3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。

4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。

四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。


程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。

五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。

在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。

java课程设计报告

java课程设计报告

java课程设计报告随着Java言的不断发展,越来越多的编程人员开始使用 Java开发应用程序,这就催生出了一种新的课程 Java程设计。

本文旨在通过总结 Java程设计的过程及其相关知识,以便于编程人员以及研究者对 Java程设计有一个更深入的了解。

首先,要完成 Java程设计,需要了解 Java语言特性和编程工具。

这里不仅要掌握 Java言本身的知识,还要熟悉 Java架和测试框架,这样才能开发出能够完成各种任务的应用程序。

此外,学习Java程设计的人还需要具备一定的网络知识,这样可以更好地了解Java程设计的用途,以及 Java发的环境,否则,将很难完成 Java程设计。

其次,要开始 Java程设计,设计人员要先明确设计内容,比如要设计的应用程序的功能、界面要求等,还要考虑安全性、可维护性等方面,以确保设计出来的程序在实际应用中能够如预期般完成任务。

之后,设计人员就可以根据设计内容,编写 Java序,实现功能。

此时,设计人员要根据需求分析,合理安排代码结构,并确定需要用到的类库和技术;同时,实现功能时也要注意代码质量,要遵守 Java 程的规范,要避免出现内存泄漏等问题。

最后,在完成 Java程设计之后,设计人员要进行测试,确保程序能够完成预期任务。

这里可以使用基于 Junit(Java元测试框架)的测试框架,测试各个类的接口和输出内容,以确保程序功能正常,做到稳定可靠。

总的来说,要完成 Java程设计,不仅要有良好的 Java言和编程工具的基础知识,还要了解 Java发的环境,还要具备一定的网络知识,最后要仔细的进行测试,确保设计出来的程序稳定可靠,才能完成 Java程设计。

总之,很明显,Java程设计并不容易,但所能学到的知识也丰富多样,对于以后的研究和工作也有很大的帮助,因此,建议编程人员考虑学习 Java程设计,来拓展自己的知识面和应用能力。

JAVA开放性实验报告贪吃蛇

JAVA开放性实验报告贪吃蛇

JAVA开放性实验报告贪吃蛇实验目的:本实验旨在利用Java语言实现一个经典的贪吃蛇游戏,通过实践提升对面向对象程序设计的理解和应用能力,加深对Java语言的熟练程度,并提高解决问题的能力和编程实践经验。

实验内容:1.设计游戏界面:通过Java中的Swing库实现游戏窗口的设计,包括游戏区域、游戏开始按钮、得分显示等。

2.实现游戏逻辑:设计贪吃蛇的移动规则,食物的生成和吃掉判定,碰撞检测等游戏逻辑。

同时实现游戏的主循环,控制游戏的进行。

3.实现键盘控制:通过监听键盘事件,实现玩家控制贪吃蛇的移动方向。

4.设计游戏机制:设置游戏的难度等级,增加贪吃蛇的移动速度、食物生成间隔等参数,使游戏更具挑战性。

5.设计游戏结束逻辑:当贪吃蛇头碰到墙壁或自身时,游戏结束并显示得分。

玩家可以选择重新开始游戏或退出。

实验步骤:1.设计游戏界面:创建一个JFrame窗口,在窗口中添加游戏画布,开始按钮和得分显示等组件。

2.实现游戏逻辑:设计Snake类和Food类,表示贪吃蛇和食物。

通过ArrayList存储贪吃蛇的身体节点,并实现移动、吃食物等方法。

3.实现键盘控制:通过实现KeyListener接口来监听键盘事件,根据按键控制贪吃蛇的移动方向。

4.设计游戏机制:设置贪吃蛇的移动速度、食物生成间隔等参数,根据难度级别逐步增加,使游戏更具挑战性。

5.设计游戏结束逻辑:当贪吃蛇头碰到墙壁或自身时,游戏结束并显示得分。

提供重新开始游戏和退出游戏的选项。

实验结果:经过实验设计和编码实现,成功完成了Java贪吃蛇游戏的开发。

游戏界面美观,操作流畅,游戏逻辑完整,玩家能够通过控制贪吃蛇吃到食物并获得得分。

随着游戏的进行,贪吃蛇会不断变长,玩家需要避开障碍,控制蛇头移动,体验游戏的乐趣和挑战。

实验总结:通过本次实验,我深入学习了Java语言的面向对象编程思想和应用,掌握了Swing库的使用方法,加深了对Java语言的理解和应用。

Java的GUI设计打造美观直观的用户界面

Java的GUI设计打造美观直观的用户界面

Java的GUI设计打造美观直观的用户界面Java是一种广泛使用的编程语言,拥有着强大的图形用户界面(GUI)设计能力。

通过使用Java提供的各种GUI库和工具,开发人员可以轻松地创建美观、直观的用户界面。

本文将介绍一些在Java中实现这样的GUI设计的方法和技巧。

一、选择合适的GUI库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。

选择合适的GUI库是设计美观直观界面的第一步。

Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。

JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。

二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。

通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。

三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。

Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。

四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。

Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。

五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。

Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。

开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。

六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。

比如使用渐变色背景、添加阴影效果、使用动画效果等。

这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。

JavaSwing界面设计所有控件及示例好

JavaSwing界面设计所有控件及示例好
15
示例:直接使用JFrame创建
import javax.swing.*; public class FirstJFrame {
public static void main(String[] args) { JFrame f = new JFrame(); f.setTitle("My First JFrame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(300, 300); f.setVisible(true);
JFrame() 创建无标题窗口。 JFrame(String s) 创建标题名字是字符串s的窗口。 例如:JFrame f = new JFrame(“Hello”);
➢ 常用方法
setTitle(String title) 设置JFrame标题文本 get/ setSize():获取/设置JFrame的大小。 add(Object a):将组件添加到JFrame中。 dispose()关闭JFrame并回收用于创建窗口的任何资源。 setVisible(boolean b)设置JFrame的可见性。 setLocation(x,y) 设置JFrame在屏幕的位置
选课 保存
JList JFileChooser
确认 JButton 结果 JTextArea
要求输入完毕按“确认”将该学生的信息记录到“结果”中;按 “保存”将结果保存到一个指定的文件中;基本信息与结 果界面上下分布在一个JSplitPane中;屏幕下方显示当前
时间
21
示例:学生信息管理系统
步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,

javaweb实验报告

javaweb实验报告

一.实验目的实现学生信息管理系统,学生登录身份验证,信息的录入和信息的查询。

并在实验的过程中熟练掌握网页设计的各种工具,如Dreamwawer,tomcat等,提高网页设计的能力。

二.实验过程1.实现基本页面的设计,使用的工具:Dreamwawer。

2.实现服务器端程序设计,对页面数据进行处理。

3.与数据库进行连接,实现对学生数据的操作,如查询,存储,修改等。

4.进一步完善系统,如页面的美化等等。

本系统有三个模块组成,学生登录模块,学生信息数据库模块,出错处理模块,学生登录以后输入相应的学号,密码,登陆学生信息界面,队学生的成绩等基本信息进行查询,若学号或密码出错,或者不符合,弹出相应的出错界面。

本系统采用Jsp+JavaBean+SQL2000设计方式,其中JavaBean担当数据库连接以及逻辑控制,这样在Jsp就省去了繁琐的数据库连接,以及复杂的逻辑控制,使Jsp成为表示逻辑。

三.运用软件Windows环境下的Tomcat7.0,SQL2000。

四.过程截图:1.学生登录界面的设计:2.与数据库系统的连接:3.实现对学生数据的操作:4.对学生数据的保护的完善。

1,验证学生身份:Student:import java.sql.*;public class student {private String name;private String password;private String id;private String jiguan;private String sex;private String dep;public void setDep(String s){dep=s;}public String getDep(){return dep;}public void setSex(String s){sex=s;}public String getSex(){return sex;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getJiguan() {return jiguan;}public void setJiguan(String jiguan) {this.jiguan = jiguan;}public boolean hasLogin(){ //检查该学生是否已经注册boolean f=true;String sql="select id from student where id ='"+id+"'";sqlBean db =new sqlBean();try{ResultSet rs=db.executeQuery(sql);if(rs.next()){ f=false;}else{ f=true;}}catch(Exception e){ e.getMessage();}return f;}public ResultSet getStudent(){String sql="select * from student ";sqlBean db= new sqlBean();ResultSet rs = db.executeQuery(sql);return rs;}public void updateStudent(){String sql="update student "+" set name='"+name+"',sex='"+sex+"',department='"+dep+"', "+"password='"+password+"',jiguan='"+jiguan+"' "+" where id='"+id+"' ";sqlBean db= new sqlBean();db.executeInsert(sql);}public void deleteStudent(){String sql="delete from student where id ='"+id+"' ";sqlBean db= new sqlBean();db.executeDelete(sql);}public void addStudent() {String sql="insert into student(name,password,id,sex,department,jiguan) "+"VALUES('"+name+"','"+password+"','"+id+"','"+sex+"','" +dep+"','"+jiguan+"')";sqlBean db =new sqlBean();db.executeInsert(sql);}}2.登陆界面:public class login {private String id;private String password;private String kind;private int flag=0;public int getFlag(){if(kind.equals("student")) flag=1;if(kind.equals("teacher")) flag=2;if(kind.equals("admin")) flag=3;return flag;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getKind() {return kind;}public void setKind(String kind) {this.kind = kind;}}3.出错处理:import java.sql.*;import java.io.*;public class marking {String tea_id;String coursename;String score;String stu_id;public void setStu_id(String id){this.stu_id=id;}public String getStu_id(){return stu_id;}public void setScore(String sc){this.score=sc;}public String getScore(){return score;}public void setTea_id(String id){this.tea_id=id;}public String getTea_id(){return tea_id;}public void setCoursename(String c){this.coursename=c;}public String getCoursename(){return coursename;}public ResultSet getStudents(){String sql=" select stu_id "+"from enrol "+"where accept=1 "+"and class_id IN( "+"select classes.id "+"from classes ,course "+"where course.id=classes.cour_id "+"and ='"+coursename+"' "+"and classes.tea_id='"+tea_id+"') ";sqlBean db = new sqlBean();ResultSet rs=db.executeQuery(sql);return rs;}public void addmark(){int mark=0;int mark1=0;String sql="select mark from student where id='"+stu_id+"' ";sqlBean db = new sqlBean();try{ResultSet rs = db.executeQuery(sql);if(rs.next()) { mark = rs.getInt("mark");}}catch(SQLException ex){System.err.println("学生成绩查询有错误:"+ex.getMessage() );System.out.print("学生成绩查询有错误:"+ex.getMessage());//输出到客户端}sql="select mark from course where name='"+coursename+"' ";try{ResultSet rs=db.executeQuery(sql);if(rs.next()){ mark1=rs.getInt("mark"); }}catch(SQLException ex){System.err.println("成绩查询有错误:"+ex.getMessage() );System.out.print("成绩查询有错误:"+ex.getMessage());//输出到客户端}mark = mark+mark1;sql="update student set mark='"+mark+"' where id='"+stu_id+"' ";db.executeInsert(sql);}public void updatemark(){int temp=0;try{temp = Integer.parseInt(score) ;}catch(NumberFormatException e){System.err.println("成绩输入有错误:"+e.getMessage() );System.out.print("成绩输入有错误:"+e.getMessage());//输出到客户端}if(temp>60){addmark();}String sql="update enrol set score='"+temp+"' "+ "where stu_id='"+stu_id+"' "+"and class_id IN( "+"select classes.id "+"from classes,teacher,course "+"where classes.tea_id='"+tea_id+"' "+"and course.id=classes.cour_id "+"and ='"+coursename+"' ) ";sqlBean db = new sqlBean();db.executeInsert(sql);}4,连接到sql数据库:import java.sql.*;public class determin{String sql="";String stu_id="";String tea_id="";String coursename="";public String accept(){sql="update enrol set accept=1 "+"where stu_id='"+stu_id+"' "+"and class_id IN ( "+"select classes.id "+"from classes,course "+"where ='"+coursename+"' "+ "and classes.tea_id='"+tea_id+"' and course.id=classes.cour_id) ";sqlBean sqlbean= new sqlBean() ;sqlbean.executeInsert(sql);return stu_id;}public void setTea_id(String id){this.tea_id=id; }public String getTea_id(){return tea_id;}public void setStu_id(String ss) {this.stu_id=ss;}public String getStu_ids(){return stu_id;}public void setCoursename(String ss){this.coursename = ss;}public String getCoursename(){return coursename;}public ResultSet getStudent(String id){sql="select * from student where id='"+id+"'";sqlBean sqlbean = new sqlBean();ResultSet rs = sqlbean.executeQuery(sql);return rs; }public ResultSet getStu_id(){sql="select enrol.stu_id "+" from enrol ,classes,course "+"where classes.cour_id=course.id "+"and enrol.class_id=classes.id "+"and( enrol.accept='0' or enrol.accept=null )"+" and ='"+coursename+"' "; sqlBean sqlbean = new sqlBean();ResultSet rs = sqlbean.executeQuery(sql);return rs;}}六.心得体会:通过这次实验,让我深刻体会到java所具有的强大的功能,以及java开发web的技术servlet和jsp技术有着和其他在这方面的技术的先进之处。

实验8JavaFX图形用户界面设计

实验8JavaFX图形用户界面设计

实验8JaVaFX图形用户界面设计电信2班张声鹏(一)实验目的和要求:1.掌握JaVaFX程序的基本结构;2.掌握面板、U1组件以及形状使用;3.掌握颜色,字体和图标的使用。

(二)实验设备及材料:1.计算机;2.InteIIijIDEA或EdiPSe集成开发环境;3.OJ系统,网络畅通;(三)实验内容1.掌握JaVaFX程序的基本结构;2.掌握面板、U1组件以及形状使用;3.掌握颜色,字体和图标的使用(四)验收方式1.在本机上完成实验程序的设计和实现;2.提交电子版设计文档和工程代码。

(五)实验内容(1)完成并提交实验3的实验报告。

(2)用图形用户界面修改上述程序以《实验8JAVA图形用户界面设计》为题目提(六)程序实现packagesamp1e;import.SimpIeDateFormat;import.Date;importcation;import.FXM11oader;import.Group;import.Parent;import.Scene;import.;import.Stage;pub1icc1assMainextendsApp1ication{@0Verridepub1icvoidstart(Stageprimarystage)throwsException{Parentroot=(getC1ass().getResource(""));Groupgroup=newGroup();StringBuiIderresu1t=newStringBUi1der();〃题目字符串构造器1abe11abe1=new1abe1();Jishijishi=newJishi();Student[]stu=newStudent[3];stu[0]=newStudent("0001"z,'⅛≡");stu[1]=newStUdent("0002"J李四”);StU[2]=newStUdent("0003,“王五”);for(inti=0;i<20;i++){yunsuanys=newyunsuan();〃产生新的运算式RandomSturanStu=newRandOmStU();〃确认此轮答题学生Chutirobotchuti=newChutirobot(stu[nStu()].getStuName(),ys.getn1()z ys.getsymbo1()√s.getn2());d(mu());d("∖n");}d("当前时间:"+me());Stringtext=(ing());×t(te×t);i1dren().add(1abe1);t1e("小学生算术题");ene(newScene(group,800,500));();)pub1icstaticvoidmain(String[]args){1aunch(args);})c1assyunsuan{〃运算privateintn1,n2,symbo1;pub1icyunsuan(){this.n1=(int)(m()*100);do{this.n2=(int)(m()*100);I=(int)(m()*4);}whi1e(this.n2==0&&1==3);〃控制不会出现/0情况}pub1icintgetn1(){returnn1;}pub1icintgetn2(){returnn2;}pub1icchargetsymbo1(){if(symbo1==0)return'+,;e1seif(symbo1==1)returne1seif(symbo1==2)return'*';e1sereturn'∕,;}pub1icdoub1egetanswer(){if(symbo1==0)returnn1+n2;e1seif(symbo1==1)returnn1-n2;e1seif(symbo1==2)returnn1*n2;e1sereturn(doub1e)n1∕(doub1e)n2;})c1assChutirobot{Stringname;intn‰n2;charsymbo1;pub1icChutirobotfStringnamejntn1z charSymboIJntn2){=name;this.n1=n1;this.n2=∩2;1=symbo1;}pub1icStringgetTimu(){returnname+”同学,请你回答”+n1+””+SymbOI+,'',+n2+”等于多少?)}c1assJishi{pub1icstaticStringgetTime(){Datenow=newDate();SimpIeDateFormatdateFormat=newSimpIeDateFormatCyyyy年MM月dd日HH:mm:ss");〃可以方便地修改日期格式Stringtime=t(now);return(time);))c1assStudent{StringStuId z StuName;pub1icStudentfStringid,Stringname)(Stu1d=id;StuName=name;}StringgetStu1d(){returnStu1d;}StringgetStuName(){returnStuName;))c1assRandomStu{intn;RandomStu(){this.n=(int)(m()*3-0.01);}intgetRanStu(){returnn;})(七)运行结果(八)实验总结学会使用javafx进行UI界面搭建。

java_实验四

java_实验四

武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。

2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。

3)了解图形用户界面的事件响应机制。

4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。

5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。

2)使用Java类库中提供的组件,并添加到图形用户界面中。

3)通过Java事件处理机制,实现与用户的交互信息。

4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。

因为只有通过图形界面,用户才能够与程序友好的交互。

缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。

创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。

2)设置一个顶层的容器。

3)根据需要为容器设置布局管理器或使用默认布局管理器。

4)将组件添加到容器内,位置自行设计。

5)为响应事件的组件编写事件处理代码。

下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。

1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。

JFrame 类扩展了 Frame 类。

大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。

框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。

下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。

南邮Java实验报告1-综合图形界面程序设计

南邮Java实验报告1-综合图形界面程序设计

南邮Java实验报告1-综合图形界面程序设

自查报告。

在本次综合图形界面程序设计的实验中,我使用Java语言完成
了一个简单的图形界面程序。

在完成实验过程中,我对自己进行了
一些自查,总结如下:
1. 程序功能完整性,在设计程序时,我充分考虑了程序的功能
完整性,确保程序能够实现预期的功能。

我在自查过程中,对程序
进行了多次测试,确保程序的各个功能模块都能正常运行。

2. 代码规范性,我在编写代码的过程中,遵循了Java编程规范,确保代码的可读性和可维护性。

在自查过程中,我对代码进行
了排版和注释,确保代码的规范性。

3. 用户体验,在设计图形界面时,我考虑了用户体验,确保界
面简洁明了,操作方便。

在自查过程中,我对界面进行了多次优化,确保用户能够顺利使用程序。

4. 错误处理,在程序中,我考虑了各种可能出现的错误情况,
并进行了相应的错误处理。

在自查过程中,我对程序进行了多次异
常测试,确保程序能够正确处理各种异常情况。

在自查过程中,我发现了一些问题,并及时进行了修改和优化。

通过本次自查,我对自己的程序设计能力有了更深入的认识,也提
高了对程序质量的要求。

在今后的学习和工作中,我将继续努力,
不断提升自己的编程能力和程序设计水平。

javagui课程设计

javagui课程设计

javagui课程设计一、课程目标知识目标:1. 学生能理解Java GUI编程的基本概念,掌握Swing组件的使用方法。

2. 学生能运用布局管理器设计窗口界面,掌握事件处理机制。

3. 学生了解Java GUI编程中的常用设计模式,例如MVC。

技能目标:1. 学生能独立创建简单的图形用户界面,如计算器、文本编辑器等。

2. 学生具备分析问题、设计GUI界面并解决问题的能力。

3. 学生能运用所学知识,对已有GUI程序进行优化和改进。

情感态度价值观目标:1. 学生培养对编程的兴趣和热情,增强学习Java语言的自信心。

2. 学生树立良好的编程习惯,注重代码规范和界面美观。

3. 学生学会团队协作,共同解决问题,培养沟通能力和合作精神。

课程性质分析:本课程为Java语言高级课程,旨在帮助学生掌握图形用户界面编程技术,提高编程实践能力。

学生特点分析:学生具备一定的Java基础,对编程有初步了解,但对GUI编程可能较为陌生。

教学要求:1. 理论与实践相结合,注重培养学生的动手能力。

2. 以案例驱动教学,引导学生主动探索和解决问题。

3. 注重培养学生的编程思维和创新能力。

二、教学内容1. Swing组件概述- JFrame、JPanel等基本容器组件的使用- JLabel、JButton、JTextField等基本组件的创建与使用2. 布局管理器- 流式布局(FlowLayout)- 东南西北中布局(BorderLayout)- 网格布局(GridLayout)- 盒式布局(BoxLayout)3. 事件处理- 事件监听器接口- 事件适配器- 动作事件、鼠标事件、键盘事件等处理机制4. 常用组件与布局组合- 计算器界面设计- 文本编辑器界面设计- 菜单、工具栏等高级组件的使用5. MVC设计模式- 模型(Model)- 视图(View)- 控制器(Controller)- MVC模式在GUI编程中的应用实例6. GUI程序调试与优化- 代码规范与优化- 界面美观与用户体验- 异常处理与调试技巧教学进度安排:1. 第1周:Swing组件概述、基本组件的使用2. 第2周:布局管理器、事件处理3. 第3周:常用组件与布局组合、计算器界面设计4. 第4周:文本编辑器界面设计、菜单、工具栏等高级组件的使用5. 第5周:MVC设计模式、GUI程序调试与优化教学内容关联教材章节:1. Swing组件与布局管理器:第X章2. 事件处理:第X章3. 常用组件与布局组合:第X章4. MVC设计模式:第X章5. GUI程序调试与优化:第X章三、教学方法1. 讲授法:- 对于Swing组件、布局管理器等基本概念和原理,采用讲授法进行教学,结合PPT展示,使学生对知识点有清晰的认识。

Java程序设计实验报告_2

Java程序设计实验报告_2

Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。

二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。

三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。

3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。

4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。

这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。

对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。

五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。

Java程序设计报告24928

Java程序设计报告24928

《Java程序设计》课程设计报告xxxxxxx一、设计时间二、设计地点三、设计目的1.复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2.课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;3.培养在项目开发中团队合作精神、创新意识及能力。

4.培养查阅资料,独立思考问题的能力。

四、设计小组成员五、指导老师六、设计课题抽奖系统的设计与实现。

理由:1、界面综合度高,设计此界面要用到多种知识点,有利于大家熟练掌握和运用。

2、整个系统简洁明了,适于初学者。

3、代码编写涉及面广,利于提高综合应用能力。

七、基本思路及关键问题的解决方法基本思路:1.利用Java图形用户界面AWT组件创建抽奖系统里的姓名、密码、颜色标签和各种按钮以及显示信息的文本框,通过流布局管理器美化用户注册和登录界面;2.通过AWT事件类和事件监听器接口实现提示信息和变化信息,具体有WindowEvent窗口事件类、WindowListener窗口事件监听器接口、MouseListener鼠标事件监听接口等;3.AWT组件类中注册事件监听器:*.addMouseListener(this) 注册鼠标事件监听器*.addWindowListener(this) 注册窗口事件监听器关键问题的解决方法:问题:○1没有注册事件监听器添加语句addActionListener(this)○2没有判断输入是否为空加入语句if (tfd1.getText().equals("")||tfd2.getText().equals(""))八、算法及流程图九、调试过程中出现的问题及相应解决办法1、出现的问题:1) 在设计系统界面的时候不知道怎样进行界面布局。

2) 在改变界面大小的时候,无法把握大小。

JAVA简单画板程序设计实验报告

JAVA简单画板程序设计实验报告

J A V A简单画板程序设计实验报告As a person, we must have independent thoughts and personality.JAVA期末画板实验报告课程题目:运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。

设计思想:1.进行界面设计2.进行算法实现3.运行调试4.总结问题设计过程:A.界面设计B.新建一个Jframe容器,然后定义一个panel( Panel convas2),convas2是工具栏。

用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。

完成界面设计。

add(canvas2,;Panel canvas2 = new Panel();添加工具按键Panel canvas2 = new Panel();Button btn1 = new Button("直线");Button btn2 = new Button("椭圆");Button btn3 = new Button("矩形");Button btn4 = new Button("清除");Button btn5 = new Button("画笔");Button btn6 = new Button("橡皮");Choice choice = new Choice();Choice choice1 = new Choice();(choice);(choice1);(btn1);(btn2);(btn3);(btn4);(btn5);(btn6);在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。

1.画笔的大小:("1");("3");("5");("7");("9");2.画笔颜色("黑色");("蓝色");("红色");("黄色");("绿色");3展示画板C.算法实现运用画板,首先要对工具栏按键和鼠标进行监听,然后对监听进行响应。

JAVA设计报告

JAVA设计报告

JAVA设计报告设计报告:Java应用程序设计一、引言Java是一种面向对象的程序设计语言,广泛应用于各个领域。

本报告将讨论Java应用程序设计的一些基本概念和技术,包括面向对象设计、设计模式、异常处理等。

二、面向对象设计面向对象设计是一种以对象为基本单位的设计方法。

在Java中,一切都是对象。

面向对象设计强调封装、继承和多态。

封装可以隐藏对象的实现细节,使得代码更加模块化;继承可以表达对象之间的“is-a”关系,实现代码的复用性;多态可以使对象在运行时表现出不同的行为。

三、设计模式设计模式是一种被广泛接受的软件设计经验的总结。

它提供了一系列解决特定问题的方法,可用于提高代码的重用性、可维护性和可扩展性。

常见的设计模式包括工厂模式、单例模式、观察者模式等。

工厂模式是一种用于创建对象的模式,它将对象的创建过程与使用对象的代码解耦。

通过工厂模式,可以在不暴露对象创建细节的情况下获得一个完整的对象。

单例模式是一种只能创建一个实例的模式。

在Java中,可以使用静态方法或静态代码块实现单例模式。

观察者模式是一种对象间的一对多依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会收到通知并自动更新。

在Java中,可以使用Observable和Observer接口来实现观察者模式。

四、异常处理异常是一种在程序执行期间可能发生的错误或意外情况。

Java提供了异常处理机制,用于捕获、处理和抛出异常。

异常处理可以增加程序的健壮性,提高程序的可靠性。

在Java中,可以使用try-catch-finally语句块来捕获和处理异常。

try块中包含可能发生异常的代码,catch块用于捕获并处理异常,finally块用于执行清理操作,不论异常是否发生。

五、总结Java应用程序设计是一种面向对象的设计方法。

它强调封装、继承和多态,使得代码更加模块化、可复用和可扩展。

设计模式提供了一些解决特定问题的方法,可以提高代码的重用性、可维护性和可扩展性。

JAVA图形用户界面试验报告

JAVA图形用户界面试验报告

JA V A实验报告实验目的:学习组件布局和组件事件的处理。

实验要求:编写程序,实现成绩的查询和排序。

具体要求为:①选择合适的布局管理设计美观的界面,包含成绩输入、成绩查询、成绩排序功能。

②成绩输入:从界面上输入学生的学号和成绩,点击“确认”按钮进行保存。

③成绩查询:输入学生的学号,点击“查询”按钮,显示该学生成绩。

④成绩排序:点击“排序”按钮,将按成绩从高到低显示学生的学号和成绩。

实验步骤:①定义一个类表示学生,包含学号和成绩两个域;②用java提供的V ector或Arrays类(也可使用自定义类)存储输入的学生信息,使用java 提供的方法或使用自定义方法实现学生信息的查询和排序;③界面设计,可考虑以下的界面设计策略:ⅰ在界面上放置成绩查询、成绩输入、成绩排序三个按钮和一个文本区:按下成绩输入按钮则弹出一个窗口,该窗口上有学号输入和成绩输入文本框,输入完毕关闭窗口后输入的学生信息出现在文本区中;按下成绩查询按钮弹出一个与成绩输入类似的窗口,在学号文本框中输入学号后,在成绩文本框中立即显示成绩;按下排序按钮,在文本区中显示排序后的结果。

ii 可在界面上用三个Panel分别实现查询、输入、排序功能,分别在各Panel上放置按钮、文本框、文本区等控件。

此步中,要求学生会使用各种布局管理器设计美观的界面。

④为程序添加事件处理机制。

ⅰ为查询、输入、排序按钮添加事件处理;ⅱ为学号、成绩输入文本框添加事件处理;ⅲ为窗口的关闭添加事件处理。

import java.awt.*;import java.awt.event.*;public class jj extends Frame implements ActionListener {private Button add=new Button("添加");private Button search=new Button("查询");private Button up=new Button("排序");private Label snLabel=new Label("学号");private Label gLabel=new Label("成绩");private List list=new List();private TextField taskInput =new TextField();public class WindowsCloser extends WindowAdapter{public void WindowClosing (WindowEvent we){System.exit(0);}}private viod setup(){Panel buttons=new Panel();buttons.setLayout(new FlowLayout());buttons.add(add);buttons.add(search);buttons.add(up);Panel input =new Panel();input.setLayout(new BorderLayout());input.add("West",snLabel);input.add("Center",taskInput);input.add("west",snLabel);input.add("Center",taskInput);Panel top=new Panel();top.setLayout(new GridLayout(2,1));}public TaskList(){}public void actionperformed(ActionEvent ae) {}public static void main (String args[]){List t1 =new List();}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java
学院:计算机科学学院 班级:计算机科学与技术2班 姓名:雷燕 学号:41209010227





一、问题背景和描述
针对高等院校的教学过程,开发出相关的教学过程信息管理系统,提高教学质量。

教学过程如下图。

每项教学活动中都会产生相关信息,利用学习的知识对各种信息进行存储和维护。

二、问题分析及设计思路
1、所需解决问题:
实体功能存放位置界面风格
填空题search&display File Swing
2、实体分析:
有实际意义实体:
(1)填空题的存储位置在file中
(2)属性为:题目内容,题目编号以及题目的答案
(3)引用:先存入了F盘,然后再从文件中读取,然后按编号搜索及显示。

3、功能分析:查找功能需要首先输入要查找的题目编号,查找到题
目内容并显示。

4、界面分析:只能用Swing继承自Jframe,界面风格为比较随意,整体风格比Awt显得更美观。

其中使用方法与AWT有些区别。

5、程序架构:
查找和显示填空题:在界面上输入所需要查找的题目编号,点击ok,在界面中显示所找题号题目内容。

三、类图
四、程序代码
1.首先我创了一个填空题的类,其中它具有题目的编号,内容,正确答案的属性
package package雷燕;
//定义一个填空题的类
public class Fullbank {
int number;
String connents;
String answer;
public Fullbank(int a,String b,String c) {
number=a;
connents=b;
answer=c;
}}
2.我然后把几个填空题类存入了文件,是按对象存入
public class putinfullbank {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException { Fullbank []b=new Fullbank[10];
Scanner c=new Scanner(System.in);
for(int i=1;i<=10;i++)
{
b[i].number=c.nextInt();
b[i].connents=c.next();
b[i].answer=c.next();
}
FileOutputStream fos = new FileOutputStream("F:/zuoye/io.txt",true);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(b);
oos.flush();
oos.close(); // TODO Auto-generated method stub }
}
这段代码的截图是
3.我创造了一个查找及显示的的方法,方法是从文件中按反序列读入几个填空题的类,按输入的需要查找的编号,和这几个类的编号属性进行比较,然后相同就返回对应类内容
Private Stringsearch(int m[])throws IOException {
// TODO Auto-generated method
int h=0;
FileInputStream is = new FileInputStream("F:/zuoye/io.txt");
ObjectInputStream ois = new ObjectInputStream(is); //创建从指定InputStream 读取的ObjectInputStream
Fullbank[]b=new Fullbank[10];
for(int j=1;j<=10;j++){
b[j] = (Fullbank) ois.readObject();
if(b[j].number!=m[]);
else
h=j;
//从ObjectInputStream 读取对象(a反序列化) }
return b[h].connents;
}
}
4.我然后创一个界面了,其中根据所需的的编号进行排题
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Testfullbank extends JFrame {
public Testfullbank(){
setLayout(new GridLayout(5,6));
add(new JLabel("填空题"));
JTextField[]b=new JTextField[10];
JLabel []c;
int[]m;
for(int k=1,j=1;k<=10;k++,j++){
String s=JOptionPane.showInputDialog("请输入查询序号:");
m[k]=Integer.parseInt(s);
c[k]=new JLabel(""+search(m[j]));
add(c[k]);
add(b[k]);
b[k].addActionListener(new lacctionlinter());
}
Public static void main(String[]arg)
{Testfullbank a=new Testfullbank();
a.setTitle(‘the fulllbanks’);
setLocationRelativeTo(null);
setDefultCloseOperation(Jframe.EXIT_ON_CLOSE);
setSie(400,250);
setvisible(true); }
这段代码的截图是:
5.我对其中的文本框进行了监听,如果输入答案正确,就输出“正确”,反之“错误”
mport javax.swing.JOptionPane;
public class lacctionlinter implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s=e.paramString();
if(s.equalsIgnoreCase(b[k].awaner))
System.out.println("right!");
else
System.out.println("wrong!");// TODO Auto-generated method stub
}
其中代码运行结果如图:
五、实验的心得及体会
1,在文件中存入的时候,就是放的地方一般是不能是其它磁盘,只能是在开发环境所在的磁盘,不然会出现文件不存
在的异常
2,在文件的存入了,我开始是直接用的filioutputstream,然后写入是一个字节,一个字节写入,然后根本就存不完成,
后来用对象流,在存入时,直接存入对象,很方便,便于
读出
3,在Swing界面中,设计风格比较美观,因为系统排版是默认的流线型,我的程序是填空题,我将排版改为了网格的,显得更有格式,在做界面时,应该要注意一下排版的格式4,在对文本框进行监听时,我重新定义了一个类,使它实现了监听器接口的行为,在注册监听器的时,要注意一下语
句的表达。

六.实验的不足及问题
1.实验中,我对于文件的读写不太熟悉,然后对于填空题的存入和读取出现了几次I/O异常
2.实验中,关于事件的监听存在不足,关于事件监听,出现了一
些逻辑问题。

相关文档
最新文档