记事本java课设含可运行程序Word文档格式.docx

上传人:b****6 文档编号:21947923 上传时间:2023-02-01 格式:DOCX 页数:56 大小:231.73KB
下载 相关 举报
记事本java课设含可运行程序Word文档格式.docx_第1页
第1页 / 共56页
记事本java课设含可运行程序Word文档格式.docx_第2页
第2页 / 共56页
记事本java课设含可运行程序Word文档格式.docx_第3页
第3页 / 共56页
记事本java课设含可运行程序Word文档格式.docx_第4页
第4页 / 共56页
记事本java课设含可运行程序Word文档格式.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

记事本java课设含可运行程序Word文档格式.docx

《记事本java课设含可运行程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《记事本java课设含可运行程序Word文档格式.docx(56页珍藏版)》请在冰豆网上搜索。

记事本java课设含可运行程序Word文档格式.docx

图1类之间的关系图

2.3功能模块

此设计共有以下几个功能模块。

2.3.1打开保存功能。

使用记事本可进行直接编辑文件或打开已编辑好的文件,对文件进行编辑或改动之后可以保存文件。

2.3.2.查询功能。

可以查询相关文字进行改动或直接进行替换。

2.3.3简单的文本编辑功能,例如字体大小,字体颜色,字体类型等。

在编辑文本时可以根据自己的需要改变字体的大小和颜色以及字体类型,使其达到自己要求的效果。

2.3.4可添加一些方便记事的小功能,例如插入现行时间,现行日期。

在记事编辑时,需要添加现在时间时,本记事本提供插入现行时间及日期。

为用户提供了方便,使编辑快捷。

2.4流程图如图2所示

 

图2流程图

2.5类、方法、属性说明

2.5.1Notepad4类

(1)成员变量

表1主要成员变量(属性)

成员变量描述

变量类型

名称

文件菜单中子菜单“新建”

JMenuItem

mFile_New

编辑菜单中子菜单“撤消”

mEdit_Undo

格式菜单中子菜单“颜色”

JMenu

formatMenu_Color

帮助菜单中子菜单“帮助主题”

MenuItem

mHelp_HelpTopics

(2)方法

表2主要方法

方法名

功能

Notepad4()

描述记事本

Text.setBackground(Color.white)

设置编辑区默认背景色

Text.setForeground(Color.black)

设置编辑区默认前景色

2.5.2FileTransferHandler类

表3主要成员变量

存储为用例

JTextArea

Text

列出列表

List

file

表4主要方法

FileTransferHandler(JTextAreaText)

存储到Text中

addFilesToFilePathList(Listfiles)

添加File为Path

2.5.3UndoHandler类

表5主要成员变量

添加编译器监听

UndoableEditEvent

uee

支持自动拖放

表6主要方法

getEdit()

获得编辑项uee的方法

setDragEnabled(true)

设置是否支持自动拖放

2.5.4MyFont类

表7主要成员变量

对话框

JDialog

fontDialog

字体大小,格式,类型

JTextField

tfFont,tfSize,tfStyle;

事例为什么类型

JLabel

sample

表8主要方法

MyFont()

创建构造函数

updateSample()

完成视图用例

2.5.4Clock类

表9主要方法

run()

调用系统时间

catch(InterruptedExceptionexception)

打断当前时间例外

3.设计结果与分析

将5个Java源文件:

Notepad4.java、FileTransferHandler.java、UndoHandler.java、MyFont.java和Clock.java,保存到同一目录中。

分别编译这6个Java源文件,或运行“javac*.java”命令,编译全部的源文件,然后运行主类,即运行Notepad4类。

运行界面如同windowsxp自带的记事本。

如图3所示

图3运行主界面

文件菜单中具有新建、打开、保存、另存为、打印以及退出。

选择新建可新建一个空白文档,选择打开可以打开本地已有文本文件,保存和另存为可以保存当前所编辑的文本,打印可以打印当前文本,退出则可以直接退出文本编辑器。

图4为打开选择文本。

图4打开文本

编辑菜单有撤销、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选、时间\日期。

在没有选择文本的时候剪切、复制、删除为不可用。

图5为选择查找与替换。

图5查找与替换

格式菜单中有自动换行、字体、颜色。

其中颜色中还有子菜单字体颜色和背景颜色。

图6为选择字体颜色。

图6字体颜色的选择

4.设计体会

经过差不多一个多星期的努力,基本上完成了我的Java课程设计—记事本程序,也基本上实现了我在需求分析时所预期的功能。

通过这次的课程设计,将我从课本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学习过的知识,让我更深层次地认识到Java及其强大的功能。

同时,做这门课程设计也进一步加强了我的动手能力。

为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,一边查阅相关书籍。

在这过程中也无形中锻炼了我的思维分析,遇到问题急事想方设法通过各种途径解决问题的能力。

但是,设计过程中也存在一些问题,使得某些想法没有实现,这是这次课程设计的一点遗憾。

5.参考文献

[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:

清华大学出版社;

2006.8

[2]雷之雨.Java项目开发实践—网络篇[M].北京:

中国铁道出版社;

2005.5

[3]赵玉阳.Java从入门到精通[M].北京:

[4]李茏怡.Java编程实力讲解[M].北京:

高等教育出版社;

2005.11

6.附录:

importjava.awt.*;

importjava.awt.event.*;

importjava.text.*;

importjava.util.*;

importjava.io.*;

importjavax.swing.undo.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.datatransfer.*;

importjava.util.List;

publicclassNotepad4extendsJFrameimplementsActionListener,DocumentListener{

JMenumFile,mEdit,mMode,mView,mHelp;

//---------------文件菜单

JMenuItemmFile_New,mFile_Open,mFile_Save,mFile_ASave,mFile_Print,mFile_Exit;

//---------------编辑菜单

JMenuItemmEdit_Undo,mEdit_Cut,mEdit_Copy,mEdit_Paste,mEdit_Del,mEdit_Search,mEdit_SearchNext,mEdit_Replace,mEdit_Turnto,mEdit_SelectAll,mEdit_TimeDate;

//---------------格式菜单

JCheckBoxMenuItemformatMenu_LineWrap;

JMenuformatMenu_Color;

JMenuItemformatMenu_Font,formatMenu_Color_FgColor,formatMenu_Color_BgColor;

//---------------查看菜单

JCheckBoxMenuItemviewMenu_Status;

//---------------帮助菜单

JMenuItemmHelp_HelpTopics,mHelp_About;

//---------------弹出菜单级菜单项

JPopupMenupopupMenu;

JMenuItempopupMenu_Undo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll;

//---------------工具栏按钮

JButtonnewButton,openButton,saveButton,saveAsButton,printButton,undoButton,redoButton,cutButton,copyButton,pasteButton,deleteButton,searchButton,timeButton,fontButton,boldButton,

italicButton,fgcolorButton,bgcolorButton,helpButton;

//文本编辑区域

staticJTextAreaText;

//状态栏标签

JLabelstatusLabel1,statusLabel2,statusLabel3;

JToolBarstatusBar;

//---------------系统剪贴板

ToolkittoolKit=Toolkit.getDefaultToolkit();

ClipboardclipBoard=toolKit.getSystemClipboard();

//---------------创建撤消操作管理器

protectedUndoManagerundo=newUndoManager();

protectedUndoableEditListenerundoHandler=newUndoHandler();

//----------------其它变量

booleanisNewFile=true;

//是否新文件(未保存过的)

FilecurrentFile;

//当前文件名

StringoldValue;

//存放编辑区原来的内容,用于比较文本是否有改动

JButtonfontOkButton;

//字体设置里的"

确定"

按钮

//----------------设置编辑区默认字体

protectedFontdefaultFont=newFont("

宋体"

Font.PLAIN,12);

GregorianCalendartime=newGregorianCalendar();

inthour=time.get(Calendar.HOUR_OF_DAY);

intmin=time.get(Calendar.MINUTE);

intsecond=time.get(Calendar.SECOND);

FilesaveFileName=null,fileName=null;

publicNotepad4(){

super("

记事本"

);

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

Containercontainer=getContentPane();

//System.out.println(Text.getDragEnabled());

//支持自动拖放

JScrollPanescroll=newJScrollPane(Text);

scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

Text.setWrapStyleWord(true);

//设置单词在一行不足容纳时换行

Text.setLineWrap(true);

Text.setFont(defaultFont);

//设置编辑区默认字体

Text.setBackground(Color.white);

//设置编辑区默认背景色

Text.setForeground(Color.black);

//设置编辑区默认前景色

oldValue=Text.getText();

//获取原文本编辑区的内容

//--------------------------编辑区注册事件监听

Text.getDocument().addUndoableEditListener(undoHandler);

//添加负责通知任何更改的撤消侦听器

Text.getDocument().addDocumentListener(this);

//添加负责通知任何更改的文档侦听器

JMenuBarMenuBar=newJMenuBar();

mFile=newJMenu("

文件(F)"

true);

//创建菜单

mEdit=newJMenu("

编辑(E)"

mMode=newJMenu("

格式(O)"

mView=newJMenu("

查看(V)"

mHelp=newJMenu("

帮助(H)"

mEdit.addActionListener(newActionListener()//注册事件监听

{

publicvoidactionPerformed(ActionEvente){

checkMenuItemEnabled();

//设置剪切、复制、粘贴、删除等功能的可用性

}

});

mFile.setMnemonic('

F'

mEdit.setMnemonic('

E'

mMode.setMnemonic('

O'

mView.setMnemonic('

V'

mHelp.setMnemonic('

H'

MenuBar.add(mFile);

MenuBar.add(mEdit);

MenuBar.add(mMode);

MenuBar.add(mView);

MenuBar.add(mHelp);

//--------------文件菜单

mFile_New=newJMenuItem("

新建(N)"

'

N'

mFile_Open=newJMenuItem("

打开(O)"

mFile_Save=newJMenuItem("

保存(S)"

S'

mFile_ASave=newJMenuItem("

另存为(A)"

A'

mFile_Print=newJMenuItem("

打印(P)"

P'

mFile_Exit=newJMenuItem("

退出(X)"

X'

mFile_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));

mFile_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

mFile_Save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

mFile_Print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));

mFile_New.addActionListener(this);

//注册事件监听

mFile_Open.addActionListener(this);

mFile_Save.addActionListener(this);

mFile_ASave.addActionListener(this);

mFile_Print.addActionListener(this);

mFile_Exit.addActionListener(this);

mFile.add(mFile_New);

//添加菜单项

mFile.add(mFile_Open);

mFile.add(mFile_Save);

mFile.add(mFile_ASave);

mFile.addSeparator();

//添加分割线

mFile.add(mFile_Print);

mFile.add(mFile_Exit);

//--------------编辑菜单

mEdit_Undo=newJMenuItem("

撤消(U)"

U'

mEdit_Cut=newJMenuItem("

剪切(T)"

T'

mEdit_Copy=newJMenuItem("

复制(C)"

C'

mEdit_Paste=newJMenuItem("

粘贴(P)"

mEdit_Del=newJMenuItem("

删除(L)"

L'

mEdit_Search=newJMenuItem("

查找(F)"

mEdit_SearchNext=newJMenuItem("

查找下一个(N)"

mEdit_Replace=newJMenuItem("

替换(R)"

R'

mEdit_Turnto=newJMenuItem("

转到(G)"

G'

mEdit_SelectAll=newJMenuItem("

全选(A)"

mEdit_TimeDate=newJMenuItem("

时间/日期(D)"

D'

mEdit_Cut.setEnabled(false);

mEdit_Undo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));

mEdit_Cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

mEdit_Copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

mEdit_Paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

mEdit_Del.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));

mEdit_Search.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));

mEdit_SearchNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));

mEdit_Replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));

mEdit_Turnto.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));

mEdit_SelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

mEdit_TimeDate.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));

mEdit_Undo.addActionListener(this);

mEdit_Cut.addActionListener(this);

mEdit_Copy.addActionListener(this);

mEdit_Paste.addActionListener(this);

mEdit_Del.addActionListener(this);

mEdit_Search.addActionListener(this);

mEdit_SearchNext.add

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1