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图形界面编程的基本知识和技巧实验过程: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开发环境(验证性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

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图形用户界面(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程设计之后,设计人员要进行测试,确保程序能够完成预期任务。
这里可以使用基于 Junit(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设计的方法和技巧。
一、选择合适的GUI库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。
选择合适的GUI库是设计美观直观界面的第一步。
Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。
JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。
二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。
通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。
三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。
Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。
四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。
Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。
五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。
Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。
开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。
六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。
比如使用渐变色背景、添加阴影效果、使用动画效果等。
这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。
JavaSwing界面设计所有控件及示例好

示例:直接使用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实验报告

一.实验目的实现学生信息管理系统,学生登录身份验证,信息的录入和信息的查询。
并在实验的过程中熟练掌握网页设计的各种工具,如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图形用户界面设计电信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_实验四

武汉工程大学计算机科学与工程学院实验报告[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. 程序功能完整性,在设计程序时,我充分考虑了程序的功能
完整性,确保程序能够实现预期的功能。
我在自查过程中,对程序
进行了多次测试,确保程序的各个功能模块都能正常运行。
2. 代码规范性,我在编写代码的过程中,遵循了Java编程规范,确保代码的可读性和可维护性。
在自查过程中,我对代码进行
了排版和注释,确保代码的规范性。
3. 用户体验,在设计图形界面时,我考虑了用户体验,确保界
面简洁明了,操作方便。
在自查过程中,我对界面进行了多次优化,确保用户能够顺利使用程序。
4. 错误处理,在程序中,我考虑了各种可能出现的错误情况,
并进行了相应的错误处理。
在自查过程中,我对程序进行了多次异
常测试,确保程序能够正确处理各种异常情况。
在自查过程中,我发现了一些问题,并及时进行了修改和优化。
通过本次自查,我对自己的程序设计能力有了更深入的认识,也提
高了对程序质量的要求。
在今后的学习和工作中,我将继续努力,
不断提升自己的编程能力和程序设计水平。
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程序设计实验报告姓名:学号:班级:课题名称(附程序名):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程序设计》课程设计报告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简单画板程序设计实验报告

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中,一切都是对象。
面向对象设计强调封装、继承和多态。
封装可以隐藏对象的实现细节,使得代码更加模块化;继承可以表达对象之间的“is-a”关系,实现代码的复用性;多态可以使对象在运行时表现出不同的行为。
三、设计模式设计模式是一种被广泛接受的软件设计经验的总结。
它提供了一系列解决特定问题的方法,可用于提高代码的重用性、可维护性和可扩展性。
常见的设计模式包括工厂模式、单例模式、观察者模式等。
工厂模式是一种用于创建对象的模式,它将对象的创建过程与使用对象的代码解耦。
通过工厂模式,可以在不暴露对象创建细节的情况下获得一个完整的对象。
单例模式是一种只能创建一个实例的模式。
在Java中,可以使用静态方法或静态代码块实现单例模式。
观察者模式是一种对象间的一对多依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会收到通知并自动更新。
在Java中,可以使用Observable和Observer接口来实现观察者模式。
四、异常处理异常是一种在程序执行期间可能发生的错误或意外情况。
Java提供了异常处理机制,用于捕获、处理和抛出异常。
异常处理可以增加程序的健壮性,提高程序的可靠性。
在Java中,可以使用try-catch-finally语句块来捕获和处理异常。
try块中包含可能发生异常的代码,catch块用于捕获并处理异常,finally块用于执行清理操作,不论异常是否发生。
五、总结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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.实验中,关于事件的监听存在不足,关于事件监听,出现了一
些逻辑问题。