实训报告书
实训名称: Java程序设计实训
系(部):信息工程系
专业班级:
学生:
学号:
指导教师:民
完成日期: 2015.12.11 科技大学泰山科技学院
目 录
目 录 ...................................................................... 0 1 实训目的. (1)
1.1 实训目的 ............................................................ 1 1.2实训要求 ............................................................. 1 2 文本编辑器系统的分析与设计 (1)
2.1 系统功能描述 ........................................................ 1 2.2 系统模块设计 ........................................................ 1 2.3 数据库结构设计 ...................................................... 2 3 主要代码清单 .. (3)
3.1生成菜单栏及菜单项 ................................................... 3 3.2监听事件处理 ......................................................... 4 4 程序运行与测试 (5)
4.1文本区功能测试 ....................................................... 5 4.2文件菜单功能测试 ..................................................... 5 4.3编辑菜单功能测试 ..................................................... 6 4.4工具菜单功能测试 .................................................... 10 5 实训总结 .. (13)
……………………………装……………………………………订…………………………………线……………………………
文本编辑器的设计和实现
1 实训目的
1.1 实训目的
《Java程序设计实训》是计算机专业一门重要的专业技术基础实践课程。为了能够较好的完成实训任务,学生应具备软件开发技术的基础知识,实训的主要目的在于将理论与实际应用相结合,使用程序设计语言java,以及相关软件设计开发知识完成软件的设计开发任务。本实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高学生项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。
1.2实训要求
实训中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握软件开发技术,提高分析、解决实际问题的能力
本次实训要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2 文本编辑器系统的分析与设计
2.1 系统功能描述
通过此系统可以实现如下功能:
1)可进行文件的新建、打开、保存、编辑等基本功能。
2)支持复制、剪切和粘贴操作
3)可进行查找和替换操作
2.2 系统模块设计
根据系统自带的文档编辑器的特征设计,包括如下的功能模块:
一、整体结构框架包括:菜单栏和文档编辑区
二、每个框架分别包含不同的子框架,各个模块的具体框架:
?菜单栏:文件、编辑、工具
?菜单栏中各个子菜单功能
文件:新建、打开、保存、另存为、退出
编辑:剪切、复制、粘贴
工具:查找、替换
?子菜单功能的实现主要的几个功能介绍
1)打开与另存为:两个窗体调用系统函数直接利用,注意格式的选择
2)查找:查找容、查找、查找下一个
?文本编辑区
监视文本容是否改变、监听光标所在位置
2.3 数据库结构设计
1.程序E-R图
3 主要代码清单
3.1生成菜单栏及菜单项
public void addmyMenu() // 菜单函数,生成菜单
{
JMenuBar menubar = new JMenuBar();// 菜单栏添加若干菜单
this.setJMenuBar(menubar);
String menustr[] = { "文件", "编辑", "工具", "帮助" };//菜单栏字符串数组
JMenu menu[] = new JMenu[menustr.length];
for (int i = 0; i < menu.length; i++) {//为菜单栏赋值编辑
剪切
复制
粘贴
工具
查找
替换
menu[i] = new JMenu(menustr[i]);
menubar.add(menu[i]);
}
String menuitemstr0[] = { "新建", "打开", "保存", "另存为", "退出" };// 文件菜单中添加若干菜单项
JMenuItem menuitem0[] = new JMenuItem[menuitemstr0.length];
for (int i = 0; i < menuitem0.length; i++) {//为文件菜单赋值menuitem0[i] = new JMenuItem(menuitemstr0[i]);
menu[0].add(menuitem0[i]);
menuitem0[i].addActionListener(this);// 为每个菜单项注册监听事件
}
String menuitemstr1[] = { "剪切", "复制", "粘贴" };// 编辑菜单中添加若干菜单项
JMenuItem menuitem1[] = new JMenuItem[menuitemstr1.length];
for (int i = 0; i < menuitem1.length; i++) {
menuitem1[i] = new JMenuItem(menuitemstr1[i]);
menu[1].add(menuitem1[i]);
menuitem1[i].addActionListener(this);// 为每个菜单项注册监听事件
}
String menuitemstr2[] = { "查找", "替换" };// 工具菜单中添加若干菜单项
JMenuItem menuitem2[] = new JMenuItem[menuitemstr2.length];
for (int i = 0; i < menuitem2.length; i++) {
menuitem2[i] = new JMenuItem(menuitemstr2[i]);
menu[2].add(menuitem2[i]);
menuitem2[i].addActionListener(this);// 为每个菜单项注册监听事件
}
JMenuItem menuitemstr3 = new JMenuItem("帮助");// 帮助菜单中添加帮助菜单项
menu[3].add(menuitemstr3);
menuitemstr3.addActionListener(this);// 注册监听事件}
3.2监听事件处理
注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同的事件调用不同的函数,得到文本操作的不同结果。
class MyItemListener_font implements ItemListener { //字体监听器public void itemStateChanged(ItemEvent e) {
id_font = ((java.awt.List)e.getSource()).getSelectedIndex();
switch( id_font){
case 0:{
ta.setFont(new Font("Times New