基于Swing的Java GUI开发与记事本实现实验报告

0 下载量 188 浏览量 更新于2024-06-28 收藏 690KB DOC 举报
Java程序设计实验五主要关注于基于Swing的图形用户界面(GUI)开发,这是Java SE的一部分,它允许开发者创建复杂的窗口应用程序。在这个实验中,学生孙文浩(学号14416122,计算机141班)在信息数理学院指导下进行实践。 实验内容包括两个主要部分: 1. **基于Swing的界面设计**: - 开发了一个包含"查看已有名片"和"添加新名片"按钮的界面,分别对应查看和添加两种操作状态。在查看模式下,用户可以选择并查看名片信息,但不能编辑,而在添加模式下,所有字段都是可编辑的。用户还可以通过单选按钮切换"爱好"和"学历"展示不同附加信息,这涉及到CardLayout布局管理和组件交互。 - 图形界面上还包括一个名片列表(JList)、文本框(JTextField)、复选框(JCheckBox)和单选按钮(JRadioButton),用于输入和显示数据。 2. **记事本设计与实现**: - 学生需要根据提供的设计实现一个记事本应用,包括界面的绘制、菜单(文件、编辑、格式、查看和帮助)的构建,以及基本功能如文本输入、保存、打开等。 - 这部分涉及组件的分类理解,如容器(如JFrame)、布局管理器(如FlowLayout或CardLayout)、普通组件的使用,以及事件处理机制,包括事件监听和相应功能代码的编写。 实验目的: - 深入理解Java GUI组件的分类和作用,特别是容器和布局管理器的应用。 - 掌握事件驱动编程,包括事件的触发、处理和响应。 - 实践面向对象编程,通过创建PersonInf类来表示名片信息,并利用ArrayList存储多个名片对象。 在实验过程中,学生遇到了问题分析环节,认识到除了基础组件的使用,关键在于事件逻辑的编写和数据管理。例如,使用CardLayout简化界面复杂性,通过ListModel与JList配合获取和展示数据。 整个实验旨在提升学生的GUI设计能力、事件处理技巧以及Java编程实践能力,将理论知识应用到实际项目中。
2023-03-10 上传
《Java语言程序设计》实验报告 实验序号:3 实验项目名称: 熟练java语法、常用方法、程序结构 "学  号 "10090401xx "姓  名"xx "专业、班 "电子商务1002" "实验地点 "xx "指导教师"xx "时间 "2012.4.26 " 一、实验目的及要求 1. 进一步熟练Java语法和常用方法的使用; 2. 进一步熟练Java程序结构; 3. 进一步提高算法设计与实现的能力; 4. 为后续章节的学习打下坚实的基础; 二、实验设备(环境) 实验室计算机、windows xp系统、myeclipse 3. 实验内容与步骤 1.随机生成100个0到200的整数,用折半查找法(二分法)查找50是第几个数, 并输出查找过程(即和什么数进行了比较)。 (折半查找是在已经排序的数据中做的查找,所以先要排序) 2.显示任意一个月份的日历(>1900)(一周一行,要有月名、表头和横线。 按列右对齐, 用String.format("%1$ 4d",intNumber)可以将任意整数intNumber格式化成前面补"空格"的4位定长字符串) 3.显示出任一年份的日历(>1900) 4.用数组模拟实现一个50个字符串的堆栈,并使这个堆栈有如下方法和参数: myStack:数组名,使用时不能直接对这个数组进行存取操作,存取操作都通过p op()和push()完成。 实现pop(): 弹出 实现push():压入 实现isFull():是否已满 实现isEmpty():是否为空 实现length():已有多少元素 要点:要将代码设计成有通用性,也就是说要考虑各种可能的情况,考虑越多, 你的程序就越稳定可靠,高可靠性的代码一直是一个开发人员追求的最高目标之 一。 5.使用堆栈,将中缀算术表达式转换成后缀表达式。 a) 表达式中只有+、-、×,/,%,(,)六种运算符 b) 变量名为以英文字母开头的字母数字串 c) 表达式中可以出现不带符号的常数 d) 适当判断表达式中的语法错误 e) 不计算结果 f) 参考:(算法描述) 1. 若遇到的是数字或小数点,则直接写入到strResult中 (strResult为结果字符串); 2. 若遇到的是左括号,则应把它压入到运算符栈中; 3. 若遇到的是右括号,把从栈顶直到保存着的对应左括号之间的运算符依次退栈并写 入strResult串中; 4. 若遇到的是运算符: 4.1 当该运算符的优先级大于栈顶运算符的优先级时,进栈 4.2 若遇到的运算符的优先级小于或等于栈顶运算符的优先级,这表明栈顶运算符的 两个运算对象已经被保存到strResult串中,应将栈顶运算符退栈并写入到strRe sult串中,对于新的栈顶运算符仍继续进行比较和处理,直到被处理的运算符的 优先级大于栈顶运算符的优先级为止,然后让该运算符进栈即可。 四、实验结果与数据处理 程序代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class experiment_3{ static int intInputValue; static String strInputValue; static int length; public static void main(String args[]) { random();//第1题随机数排序查找的功能 calendar();//第二题日历的功能 String[] myString=new String[]{""}; System.out.print("请输入合法的中缀表达式:"); if(getStringInput(myString)) MidfixToSuffix(myString[0]); } static void random() { int[][] anArray; anArray=new int[100][2];//二维数组,存取随机数和其固定编号 for(int i=0;i<100;i++) { anArray[i][0]=(int)(Math.random()*200)+1;//产生100个在1- 200之间的随机数 anArray[i][1]=i+1; } System.out.println("随机产生的数为:"); for(int i=0;i<100;i++)//打印排序前的随机数 { System.out.print(String.format("%1$ 5d",anArray[i][0])); if((i+1)%20==0) System.out.println(); } BobbleSort(anA