java论文题材.docx

上传人:b****2 文档编号:1853119 上传时间:2023-05-01 格式:DOCX 页数:19 大小:20.30KB
下载 相关 举报
java论文题材.docx_第1页
第1页 / 共19页
java论文题材.docx_第2页
第2页 / 共19页
java论文题材.docx_第3页
第3页 / 共19页
java论文题材.docx_第4页
第4页 / 共19页
java论文题材.docx_第5页
第5页 / 共19页
java论文题材.docx_第6页
第6页 / 共19页
java论文题材.docx_第7页
第7页 / 共19页
java论文题材.docx_第8页
第8页 / 共19页
java论文题材.docx_第9页
第9页 / 共19页
java论文题材.docx_第10页
第10页 / 共19页
java论文题材.docx_第11页
第11页 / 共19页
java论文题材.docx_第12页
第12页 / 共19页
java论文题材.docx_第13页
第13页 / 共19页
java论文题材.docx_第14页
第14页 / 共19页
java论文题材.docx_第15页
第15页 / 共19页
java论文题材.docx_第16页
第16页 / 共19页
java论文题材.docx_第17页
第17页 / 共19页
java论文题材.docx_第18页
第18页 / 共19页
java论文题材.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java论文题材.docx

《java论文题材.docx》由会员分享,可在线阅读,更多相关《java论文题材.docx(19页珍藏版)》请在冰点文库上搜索。

java论文题材.docx

java论文题材

目录

一、概要设计……………………………………………………………3

二、程序整体设计说明…………………………………………….…..4

三、程序部分源代码及注释…………………………………………….9

四、测试结果………………………………………………………….24

五、设计心得…………………………………………………………25

六、致谢…………………………………………………………25

七、参考文献…………………………………………………………25

 

【摘要】该程序是一个图形界面的java文档编辑器,其界面主要采用了awt包,程序实现了文本编辑器的基本功能有:

新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小,另外还利用Time类的schedule方法实现了文件的定时自动更新功能,并创建备份文件,由于该编辑器是用的awt包,所以在技术上没有实现将Java的关键字以不同颜色显示功能。

【关键字】java编辑器

一、概要设计

Java程序编辑器是:

图形界面、线程、流与文件等技术的综合应用。

图形界面的实现:

考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。

线程实现文件自动保存:

在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。

文件操作的实现:

利用了字符文件流FileReader和FileWriter类来实现。

由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。

在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。

主类完成对象的实例化及显示。

这们设计的优点是:

条理清晰,容易理解,容易修改。

这样设计的缺点是:

不利于共享类中的方法。

 

二、程序整体设计说明

2.1、程序框架图

 

2.2、程序中所用类说明

(1)用户自定义类

类名:

EditInstantiation

作用:

实例化对象

继承的父类:

WindowAdapter

主要成员变量:

FramemyFrm//定义主窗体

TextAreamyText//定义文本编辑区

DialogmyDlgFind,myDlgFindont//查找及设置字体对话框

TextFieldTFfind,TFreplace,TffontSize

//查找对话框和字体窗体中的文本行

ButtonBfontOK,Bfind,Breplace,Bnext,Bcancel//定义和创建各按钮

LabelLf,Lr,Ls//定义和创建各标签

MenuBarMbbar//定义和创建主菜单

MenuMfile,Medit,Mformation,Mhelp//定义和创建主菜单中的选项

ToolkittoolKit

ClipboardmyCB//剪切板对象

FileDialogmyFDlg//定义文件对话框

ChoiceChfontName//定义和创建字体选择框

privateintVIindex=1;//构成文件名后缀变量

privateStringVSsubFixStr=".java";//构成文件名扩展名变量

privateStringVSmyFileName="Document1",VSmyBFileName;

//文件名及备份文件名变量

privateFileVFmyFile=newFile(VSmyFileName+VIindex+".java");

//文件名变量

privateintVIsearchPosition=0;//查找位置指针

privateTimerVTtime;//实例化一个Time类

privateintVImin=1;//schedule方法中的一个时间参数

privateintVItype=JOptionPane.INFORMATION_MESSAGE;

//提示对话框类型

privateStringVStitle;//提示对话框标题

privateStringVSmessage;//提示对话框信息

privatebooleanVBchanged=true;//改变字体的一个标识

privateintVIfontSizeMin=8,VIfontSizeMax=40,VIfontSizeChangedStep=2;//设置字体大小及步长

主要成员方法:

publicvoidinit()//初始化各部件菜单的定义和事件的监听

publicvoiddisplayEdit()//显示窗体及调用Time中的schedule方法

publicvoidwindowClosing()//关闭窗体

publicvoidsave//保存文件方法

a.内部类类名:

KeyEvents

作用:

实现菜单的事件的响应功能

继承的父类:

KeyAdapter

主要成员变量:

成员方法:

actionPerformed()、keyPressed()

b.内部类类名:

FindKeyEvent

作用:

实现查找中各部件事件的响应功能

继承的父类:

主要成员变量:

成员方法:

actionPerformed()

c.内部类类名:

fontEvent

作用:

实现字体中各部件事件的响应功能

继承的父类:

主要成员变量:

成员方法:

ItemListener(),ActionListener()

(2)用户自定义类与Java类的继承关系图如下:

自定义类Java类

 

线程使用说明

2.3、实现接口方法

本程序用到的方法有:

schedule其方法描述如下:

schedule(事件,启动时间,间隔时间);

2.4、线程应用

本程序为文本编辑器,为实现自动更新,应用到了线程,每隔1分钟对文件进行自动更新

2.5、异常处理说明

(1)打开文件时的异常处理

需要处理的异常:

IOException

处理方法:

捕获异常后,显示捕获的异常

(2)保存文件时的异常处理

需要处理的异常:

IOException

处理方法:

捕获异常后,显示捕获的异常

 

2.6、程序运行效果及存在的问题

(1)程序运行主要界面如下:

a、主界面

 

b、打开文件对话框

 

c、保存文件对话框

d、另存为文件对话框

e、查找/替换对话框

 

f.字体对话框

 

2.7.程序尚还存在的问题

我花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java编辑器,程序基本实现了该课程设计的基本要求。

但由于自己水平有限,使得程序还有不是很完善,首先,最重要的一点是该设计的最重要的功能自动改变java关键字的颜色没有实现。

三、程序部分源代码及注释

//****************************************************

//classname:

Edit

//implements:

none

//extends:

none

//attribute:

public

//founction:

entranceoftheclass

//*****************************************************

publicclassEdit{//主类

publicstaticvoidmain(Stringargs[]){

EditInstantiationmyEdit=newEditInstantiation();

myEdit.init();//初始化

myEdit.displayEdit();//显示窗体

}

//****************************************************

//classname:

EditInstantiation

//implements:

none

//extends:

WindowAdapter

//attribute:

default

//founction:

EditInstantiationofthemainclass

//*****************************************************

classEditInstantiationextendsWindowAdapter{//默认属性类

//definesources定义各部件

FramemyFrm=newFrame("我的编辑器");//定义窗体

TextAreamyText=newTextArea();//定义窗体

DialogmyDlgFind=newDialog(myFrm,"查找",true);//定义查找对话框

DialogmyDlgFindont=newDialog(myFrm,"字体",true);//定义字体对话框

TextFieldTFfind=newTextField(30);//定义查找对话中的查找输入框

TextFieldTFreplace=newTextField(30);//定义查找对话中的替换输入框

TextFieldTFfontSize,TFfontDemo;//定义字体大小文本框和示例框

ChoiceCHfontName;//定义字体大小选择框

ListLTfontSize;//定义字体大小标签

ButtonBfontOK,BfontCancel;//定义字体大小对话中的确定及取消按钮

ButtonBfind=newButton("查找");//定义查找对话中的查找按钮

ButtonBreplace=newButton("替换");//定义查找对话中的替换及取消按钮

ButtonBnext=newButton("下一个");//定义查找对话中的下一个及取消按钮

ButtonBcancel=newButton("取消");//定义查找对话中的确定及取消按钮

LabelLf=newLabel("查找内容:

");

LabelLr=newLabel("替换为:

");

LabelLs=newLabel("字体大小:

");

FileDialogmyFDlg;

ClipboardmyCB=Toolkit.getDefaultToolkit().getSystemClipboard();//剪切板对象

MenuMfile,Medit,Mformation,Mhelp;

MenuBarMBbar;

//definevarities//定义各变量

privateintVIindex=1;

privateStringVSsubFixStr=".java";

privateStringVSmyFileName="Document1",VSmyBFileName;

privateFileVFmyFile=newFile(VSmyFileName+VIindex+".java");

privateintVIsearchPosition=0;

privateTimerVTtime;

privateintVImin=1;//parameterintimeschedul

privateintVItype=JOptionPane.INFORMATION_MESSAGE;

privateStringVStitle;

privateStringVSmessage;

//flagofthechangeing

privatebooleanVBchanged=true;

//thescopeofthefont

privateintVIfontSizeMin=8,VIfontSizeMax=40,VIfontSizeChangedStep=2;

//************************************************

//founctionname:

init()

//parameter:

none

//attribute:

public

//founction:

initiaallcompont

//************************************************

publicvoidinit(){//初始化各部件

//------------------setmenu------------------

MBbar=newMenuBar();

myFrm.setMenuBar(MBbar);

Mfile=newMenu("文件");

Medit=newMenu("编辑");

Mformation=newMenu("格式");

Mhelp=newMenu("帮助");

MBbar.add(Mfile);

MBbar.add(Medit);

MBbar.add(Mformation);

MBbar.add(Mhelp);

//文件菜单addFilemenu

Mfile.add(newMenuItem("新建",newMenuShortcut(KeyEvent.VK_N)));

Mfile.add(newMenuItem("打开",newMenuShortcut(KeyEvent.VK_O)));

Mfile.add(newMenuItem("保存",newMenuShortcut(KeyEvent.VK_S)));

Mfile.add(newMenuItem("另存为"));

Mfile.addSeparator();//分隔线

Mfile.add(newMenuItem("退出",newMenuShortcut(KeyEvent.VK_E)));

//编辑菜单addEditmenu

Medit.add(newMenuItem("剪切"));//,newMenuShortcut(KeyEvent.VK_X)));

Medit.add(newMenuItem("复制"));//newMenuShortcut(KeyEvent.VK_C)));

Medit.add(newMenuItem("粘贴"));//newMenuShortcut(KeyEvent.VK_V)));

Medit.add(newMenuItem("删除"));//newMenuShortcut(KeyEvent.VK_D)));

Medit.addSeparator();//分隔线

Medit.add(newMenuItem("查找/替换",newMenuShortcut(KeyEvent.VK_F)));

Medit.addSeparator();//分隔线

Medit.add(newMenuItem("全选",newMenuShortcut(KeyEvent.VK_A)));

//格式菜单addFormationmenu

Mformation.add(newMenuItem("字体",newMenuShortcut(KeyEvent.VK_U)));

//帮助菜单addFormationmenu

Mhelp.add(newMenuItem("关于作者"));

//-----------------menuaddend-------------------------

//addMenuActionListener

Mfile.addActionListener(newKeyEvents());

Medit.addActionListener(newKeyEvents());

Mformation.addActionListener(newKeyEvents());

Mhelp.addActionListener(newFindKeyEvent());

//---------------------------Finddialog-----------------

myDlgFind.setSize(350,115);

myDlgFind.setLocation(250,150);

myDlgFind.setLayout(newFlowLayout(FlowLayout.CENTER));

myDlgFind.setBackground(Color.LIGHT_GRAY);

Bfind.setEnabled(false);

Breplace.setEnabled(false);

Bnext.setEnabled(false);

myDlgFind.add(Lf);

myDlgFind.add(TFfind);

myDlgFind.add(Lr);

myDlgFind.add(TFreplace);

myDlgFind.add(Bfind);

myDlgFind.add(Breplace);

myDlgFind.add(Bnext);

myDlgFind.add(Bcancel);

myDlgFind.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

myDlgFind.setVisible(false);

}});//为查找对话框窗体注册事件监听

TFfind.addKeyListener(newKeyEvents());//注册事件监听

Bfind.addActionListener(newFindKeyEvent());

Breplace.addActionListener(newFindKeyEvent());

Bcancel.addActionListener(newFindKeyEvent());

Bnext.addActionListener(newFindKeyEvent());

//---------------endaddactionlistener------------

//================setfontdialog==============

//fontsizetextfield

TFfontSize=newTextField("8",14);

TFfontSize.selectAll();

//fontsizelistfield

LTfontSize=newjava.awt.List(5,false);

LTfontSize.addItemListener(newfontEvent());

for(inti=VIfontSizeMin;i<=VIfontSizeMax;i=i+VIfontSizeChangedStep)

LTfontSize.add(i+"");//添加字体大小

LTfontSize.select(0);

//twoButtonOkCancel

BfontOK=newButton("确定");

BfontOK.addActionListener(newfontEvent());

BfontCancel=newButton("取消");

BfontCancel.addActionListener(newfontEvent());

//aTextFieldfordemothefont

TFfontDemo=newTextField("Javaawt",37);

TFfontDemo.setEditable(false);

//myfontdialog设置字体对话框

myDlgFindont.setLayout(newFlowLayout(FlowLayout.LEFT));

myDlgFindont.setBackground(Color.LIGHT_GRAY);

myDlgFindont.add(Ls);

myDlgFindont.add(TFfontSize);

myDlgFindont.add(BfontOK);

myDlgFindont.add(BfontCancel);

myDlgFindont.add(LTfontSize);

myDlgFindont.add(TFfontDemo);

myDlgFindont.setSize(300,200);

myDlgFindont.setLocation(300,200);

myDlgFindont.setResizable(false);

myDlgFindont.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

myDlgFindont.show(false);

}

});//为字体对话框窗体注册事件监听

//=============endsetfontdialog

//=======setEditframe设置编辑器窗休

myFrm.add(myText,BorderLayout.CENTER);

myFrm.setSize(500,400);

myFrm.setBackground(Color.lightGray);

myFrm.addWindowListener(this);

myFrm.setSize(500,400);

myFrm.setLocation(200,100);

myFrm.setTitle("Java编辑器");

}

//************************************************

//founctionname:

displayEdit()

//parameter:

none

//attribute:

public

//founction:

initialanddisplay

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

当前位置:首页 > 总结汇报 > 学习总结

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

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