Java实训报告电子版.docx

上传人:b****1 文档编号:13567519 上传时间:2023-06-15 格式:DOCX 页数:17 大小:49.36KB
下载 相关 举报
Java实训报告电子版.docx_第1页
第1页 / 共17页
Java实训报告电子版.docx_第2页
第2页 / 共17页
Java实训报告电子版.docx_第3页
第3页 / 共17页
Java实训报告电子版.docx_第4页
第4页 / 共17页
Java实训报告电子版.docx_第5页
第5页 / 共17页
Java实训报告电子版.docx_第6页
第6页 / 共17页
Java实训报告电子版.docx_第7页
第7页 / 共17页
Java实训报告电子版.docx_第8页
第8页 / 共17页
Java实训报告电子版.docx_第9页
第9页 / 共17页
Java实训报告电子版.docx_第10页
第10页 / 共17页
Java实训报告电子版.docx_第11页
第11页 / 共17页
Java实训报告电子版.docx_第12页
第12页 / 共17页
Java实训报告电子版.docx_第13页
第13页 / 共17页
Java实训报告电子版.docx_第14页
第14页 / 共17页
Java实训报告电子版.docx_第15页
第15页 / 共17页
Java实训报告电子版.docx_第16页
第16页 / 共17页
Java实训报告电子版.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java实训报告电子版.docx

《Java实训报告电子版.docx》由会员分享,可在线阅读,更多相关《Java实训报告电子版.docx(17页珍藏版)》请在冰点文库上搜索。

Java实训报告电子版.docx

Java实训报告电子版

实训报告书

实训名称:

Java程序设计实训

系(部):

信息工程系

专业班级:

学生姓名:

学号:

指导教师:

张民

完成日期:

山东科技大学泰山科技学院

实训课题

文本编辑器

实训人姓名

同组人员

实训日期

实训成绩

指导教师评语

指导教师签名:

______________

_______年____月____日

目录1

1实训目的2

1.1实训目的2

1.2实训要求2

2文本编辑器系统的分析与设计2

2.1系统功能描述2

2.2系统模块设计2

2.3数据库结构设计3

3主要代码清单4

3.1生成菜单栏及菜单项4

3.2监听事件处理5

4程序运行与测试6

4.1文本区功能测试6

4.2文件菜单功能测试6

4.3编辑菜单功能测试7

4.4工具菜单功能测试11

5实训总结14

文本编辑器的设计和实现

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生成菜单栏及菜单项

publicvoidaddmyMenu()//菜单函数,生成菜单

{

JMenuBarmenubar=newJMenuBar();//菜单栏添加若干菜单

this.setJMenuBar(menubar);

Stringmenustr[]={"文件","编辑","工具","帮助"};//菜单栏字符串数组

JMenumenu[]=newJMenu[menustr.length];

for(inti=0;i

menu[i]=newJMenu(menustr[i]);

menubar.add(menu[i]);

}

Stringmenuitemstr0[]={"新建","打开","保存","另存为","退出"};//文件菜单中添加若干菜单项

JMenuItemmenuitem0[]=newJMenuItem[menuitemstr0.length];

for(inti=0;i

menuitem0[i]=newJMenuItem(menuitemstr0[i]);

menu[0].add(menuitem0[i]);

menuitem0[i].addActionListener(this);//为每个菜单项注册监听事件

}

Stringmenuitemstr1[]={"剪切","复制","粘贴"};//编辑菜单中添加若干菜单项

JMenuItemmenuitem1[]=newJMenuItem[menuitemstr1.length];

for(inti=0;i

menuitem1[i]=newJMenuItem(menuitemstr1[i]);

menu[1].add(menuitem1[i]);

menuitem1[i].addActionListener(this);//为每个菜单项注册监听事件

}

Stringmenuitemstr2[]={"查找","替换"};//工具菜单中添加若干菜单项

JMenuItemmenuitem2[]=newJMenuItem[menuitemstr2.length];

for(inti=0;i

menuitem2[i]=newJMenuItem(menuitemstr2[i]);

menu[2].add(menuitem2[i]);

menuitem2[i].addActionListener(this);//为每个菜单项注册监听事件

}

JMenuItemmenuitemstr3=newJMenuItem("帮助");//帮助菜单中添加帮助菜单项

menu[3].add(menuitemstr3);

menuitemstr3.addActionListener(this);//注册监听事件

}

3.2监听事件处理

注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同的事件调用不同的函数,得到文本操作的不同结果。

classMyItemListener_fontimplementsItemListener{//字体监听器

publicvoiditemStateChanged(ItemEvente){

id_font

switch(id_font){

case0:

{

ta.setFont(newFont("TimesNewRoman",Font.PLAIN,ta.getFont().getSize()));//普通文字

break;}

case1:

{

ta.setFont(newFont("TimesNewRoman",Font.BOLD,ta.getFont().getSize()));//粗体文字

break;

}

case2:

{

ta.setFont(newFont("TimesNewRoman",Font.ITALIC,ta.getFont().getSize()));//斜体文字

break;

}}}}

4程序运行与测试

4.1文本区功能测试

a)字体的显示,开始的时候不做任何操作的时候显示的默认值,通过修改字体的属性来修改字体。

b)对文本事件进行监听,如果文本编辑窗口中如果有事件触发,关闭时能够有必要的信息提示。

c)状态栏的可以正常显示文本的状态信息。

4.2文件菜单功能测试

文件中的功能测试:

a)通过文件字符流读取文件,创建缓冲区存储文件流。

b)当保存文件时,先判断文件是否未被保存过,如果未被保存过,则创建新文件并通过输出流来存储文件,当文件已经保存过再对文件进行修改时,则会提示保存的消息窗体。

c)另存为是通过不同的方法来创建一个新的文件。

附:

打开与保存代码:

miSave.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(fileName.equals("")){//如果文件没有被保存过,即文件名为空

FileDialogd=newFileDialog(mainFrame,"savefile",FileDialog.SAVE);//保存文件对话框

d.addWindowListener(newWindowAdapter(){//关闭文件对话框窗口

publicvoidwindowClosing(WindowEventee){

System.exit(0);

}

});

d.setVisible(true);

Strings=ta.getText();//得到所输入的文本内容

try//异常处理

{

Filef=newFile(d.getDirectory()+d.getFile());//新建文件

fileName=d.getDirectory()+d.getFile();//得到文件名

BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中

bw.write(s,0,s.length());

bw.close();

}

catch(FileNotFoundExceptionfe_){

System.out.println("filenotfound");

System.exit(0);

}

catch(IOExceptionie_)

{

System.out.println("IOerror");

System.exit(0);

}

}

else//如果文件已经保存过

{

Strings=ta.getText();//得到所输入的文本内容

try//异常处理

{

Filef=newFile(fileName);//新建文件

BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中

bw.write(s,0,s.length());

bw.close();

}

catch(FileNotFoundExceptionfe_){

System.out.println("filenotfound");

System.exit(0);

}

catch(IOExceptionie_)

{

System.out.println("IOerror");

System.exit(0);

}

}

});

//另存为

miSaveAs.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

FileDialogd=newFileDialog(mainFrame,"savefile",FileDialog.SAVE);//保存文件对话框

d.addWindowListener(newWindowAdapter(){//关闭文件对话框窗口

publicvoidwindowClosing(WindowEventee){

System.exit(0);

}

});

d.setVisible(true);

Strings=ta.getText();//得到所输入的文本内容

try//异常处理

{

Filef=newFile(d.getDirectory()+d.getFile());//新建文件

BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中

bw.write(s,0,s.length());

bw.close();

}

catch(FileNotFoundExceptionfe_){

System.out.println("filenotfound");

System.exit(0);

}

catch(IOExceptionie_)

{

System.out.println("IOerror");

System.exit(0);

}}});

4.3编辑菜单功能测试

复制前粘贴后

剪切前剪切后

剪切、复制、粘贴功能的实现是在注册监听事件后,对文本去的文字进行操作时,系统调用文本类本身的库函数来处理文本去的文字操作,将选中的文本读入缓冲区。

然后再等待不同的操作方法的调用。

附录:

miCut.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

tempString=ta.getSelectedText();///得到要复制的内容,暂存在tempString中

StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本

intstart=ta.getSelectionStart();//得到要删除的字符串的起始位置

intlen=ta.getSelectedText().length();//得到要删除的字符串的长度

tmp.delete(start,start+len);///删除所选中的字符串

ta.setText(tmp.toString());//用新文本设置原文本

}

});

//复制

miCopy.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

tempString=ta.getSelectedText();///得到要复制的内容,暂存在tempString中

}

})

//粘贴

miPaste.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本

intstart=ta.getSelectionStart();//得到要粘贴的位置

tmp.insert(start,tempString);//查入要粘贴的内容

ta.setText(tmp.toString());//用新文本设置原文本

}

});

//删除

miDelete.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本

intstart=ta.getSelectionStart();//得到要删除的字符串的起始位置

intlen=ta.getSelectedText().length();//得到要删除的字符串的长度

tmp.delete(start,start+len);///删除所选中的字符串

ta.setText(tmp.toString());//用新文本设置原文本

}

});

4.4工具菜单功能测试

功能描述:

查找需要先生成对应的窗体,使用相应的组件类来创建窗体,使用流布局管理器来对窗体中的各个控件进行布局,对查找和查找下一个按钮注册监听事件并编写相应的处理方法。

文本去的文字使用相应的处理方法进行比较和处理,并对光标位置进行判断是否到文本末尾,使用异常处理语句捕获异常并处理。

功能描述:

替换也是需要先生成相应的窗体,使用相应的组件类来创建窗体,使用流布局管理器来对窗体中的各个控件进行布局,对替换和清空按钮注册监听事件并编写相应的处理方法。

附:

查找替换函数处理代码:

publicvoidfind()//查找函数

{

find.setSize(300,100);

find.setLocation(this.getX()+50,this.getY()+50);

find.setResizable(false);

find.setLayout(newFlowLayout());//窗体流布局

Labellabel1=newLabel("查找内容");

Buttonbutton1=newButton("查找");

Buttonbutton2=newButton("查找下一个");

find.add(label1);

find.add(ltext1);

find.add(button1);

find.add(button2);

//注册按钮的监听事件

button1.addActionListener(newActionListener(){//查找按钮事件方法

publicvoidactionPerformed(ActionEvente){

if(ltext1.getText()=="")

;

else{

intlocate=text.getText().indexOf(ltext1.getText(),0);

text.select(locate,locate+ltext1.getText().length());

fromindex=locate+ltext1.getText().length();

}

}

});

button2.addActionListener(newActionListener(){//查找下一个按钮方法

publicvoidactionPerformed(ActionEvente){

intlocate=text.getText()

.indexOf(ltext1.getText(),fromindex);

if(locate==-1)

ltext1.setText("已查找到文件末尾!

");

else{

text.select(locate,locate+ltext1.getText().length());

fromindex=locate+ltext1.getText().length();

}

}

});

find.addWindowListener(newWindowAdapter(){//关闭对话框窗口

publicvoidwindowClosing(WindowEventee){

find.dispose();

}

});

find.show();

find.removeAll();

}

publicvoidreplace()//替换函数

{

replace.setSize(200,200);

replace.setLocation(this.getX()+50,this.getY()+50);

replace.setResizable(false);

replace.setLayout(newFlowLayout());

Labellabel_1=newLabel("查找内容");

Labellabel_2=newLabel("替换为");

Buttonbutton_1=newButton("替换");

Buttonbutton_2=newButton("清空");

replace.add(label_1);

replace.add(ltext2);

replace.add(label_2);

replace.add(ltext3);

replace.add(button_1);

replace.add(button_2);

//注册按钮的监听事件

button_1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(ltext2.getText()=="")

;

else{

intlocate=text.getText().indexOf(ltext2.getText(),0);

text.select(locate,locate+ltext2.getText().length());

text.replaceRange(ltext3.getText(),locate,locate

+ltext2.getText().length());

}

}

});

button_2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

ltext2.setText("");

ltext3.setText("");

}

});

replace.addWindowListener(newWindowAdapter(){//关闭对话框窗口

publicvoidwindowClosing(WindowEventee){

replace.dispose();

}

});

repl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2