java论文题材.docx
- 文档编号:12786773
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:19
- 大小:20.30KB
java论文题材.docx
《java论文题材.docx》由会员分享,可在线阅读,更多相关《java论文题材.docx(19页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 论文 题材