记事本Java语言程序设计.docx
《记事本Java语言程序设计.docx》由会员分享,可在线阅读,更多相关《记事本Java语言程序设计.docx(25页珍藏版)》请在冰豆网上搜索。
![记事本Java语言程序设计.docx](https://file1.bdocx.com/fileroot1/2022-10/27/e3e47e7a-063d-4b08-8537-3cc98c5bf70f/e3e47e7a-063d-4b08-8537-3cc98c5bf70f1.gif)
记事本Java语言程序设计
计算机科学与技术学院
课程设计
题目:
记事本程序
学生姓名:
号:
专业:
计算机科学与技术
2013年06月26日
目录
1.所用到的关键技术、开发工具及环境介绍3
1.1Swing3
1.2awt3
1.3awt.event3
1.4基本输入输出包3
1.4开发工具MyEclispe简介4
2.所实现应用的功能及具体实现。
4
2.1需求分析4
2.2实现思路4
2.3具体实现方法5
3.关键性代码介绍及分析。
5
3.1类的实现5
3.2GUI程序界面设计5
3.3事件处理7
3.3.1编辑区键盘事件处理7
3.3.2窗口事件处理7
3.3.3菜单项事件处理7
4.所实现应用的运行界面展示。
9
5.个人总结15
附录:
源代码16
1.所用到的关键技术、开发工具及环境介绍
1.1Swing
Swing即为Java应用程序用户界面开发包
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
1.2awt
包含用于创建用户界面和绘制图形图像的所有类。
在AWT术语中,诸如按钮或滚动条之类的用户界面对象称为组件。
Component类是所有AWT组件的根。
有关所有AWT组件的公共属性的详细描述,请参见Component。
当用户与组件交互时,一些组件会激发事件。
AWTEvent类及其子类用于表示AWT组件能够激发的事件。
有关AWT事件模型的描述,请参见AWTEvent。
容器是一个可以包含组件和其他容器的组件。
容器还可以具有布局管理器,用来控制容器中组件的可视化布局。
AWT包带有几个布局管理器类和一个接口,此接口可用于构建自己的布局管理器。
1.3awt.event
提供处理由AWT组件所激发的各类事件的接口和类。
有关AWT事件模型的细节,请参见java.awt.AWTEvent类。
事件由事件源所激发。
向事件源注册的事件侦听器可接收有关特定事件类型的通知。
此包定义了事件和事件侦听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松的便捷类。
从jdk1.1版本才出现。
1.4基本输入输出包
I/O包支持java基本的输入输出系统,包括对文件的输入输出,对java的输入输出是源自于java的内核API,而不是语言关键字。
1.4开发工具MyEclispe简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。
JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始
。
2.所实现应用的功能及具体实现。
2.1需求分析
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
(4)“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。
2.2实现思路
设计类jishiben1
(1)作用:
主类
(2)继承的父类:
JFrame类
(3)实现的接口:
windowListener类与actionListener类
(4)成员变量说明:
Filefile=null;//定义一个空文件
privateJLabelstateBar;//定义一个标签
privateJTextAreatext;//定义编辑区
privateJMenuBarmb;//定义菜单栏
privateJMenufiles,edit,help;//定义菜单
privateJMenuItem
Open,New,Save,SaveAs,Exit,Cut,Copy,Paste,Delete,Find,Replace,SelectAll,About;//定义菜单项
(5)主要成员方法说明:
编辑区键盘事件:
KeyListener类如果记事本的编辑区内用键盘输入了字符,就能够被程序监听;
窗口的事件监听:
windowListener类;
菜单项的事件监听:
ActionListener类;
2.3具体实现方法
3.关键性代码介绍及分析。
3.1类的实现
Filefile=null;//定义一个空文件
privateJLabelstateBar;//定义一个标签
privateJTextAreatext;//定义编辑区
privateJMenuBarmb;//定义菜单栏
privateJMenufiles,edit,help;//定义菜单
privateJMenuItemOpen,New,Save,SaveAs,Exit,Cut,Copy,
Paste,Delete,Find,Replace,SelectAll,About;//定义菜单项
3.2GUI程序界面设计
publicjishiben1(){//构造函数
super("记事本");//菜单栏
mb=newJMenuBar();
/*****菜单栏的各个菜单项*****/
files=newJMenu("文件");
edit=newJMenu("编辑");
help=newJMenu("帮助");
/*****“帮助”菜单项的下拉菜单******/
About=newJMenuItem("关于记事本");
/*****“文件”菜单项的下拉菜单*****/
Open=newJMenuItem("打开");
New=newJMenuItem("新建");
Save=newJMenuItem("保存");
SaveAs=newJMenuItem("另存为");
Exit=newJMenuItem("退出");
/******编辑菜单的四个下拉菜单*****/
Cut=newJMenuItem("剪切");
Copy=newJMenuItem("复制");
Paste=newJMenuItem("粘贴");
Delete=newJMenuItem("删除");
Find=newJMenuItem("查找");
Replace=newJMenuItem("替换");
SelectAll=newJMenuItem("全选");
stateBar=newJLabel("未修改");//添加标签
stateBar.setHorizontalAlignment(SwingConstants.LEFT);
stateBar.setBorder(BorderFactory.createEtchedBorder());
mb.add(files);//添加控键
mb.add(edit);
mb.add(help);
files.add(New);
files.add(Open);
files.add(Save);
files.add(SaveAs);
files.addSeparator();//分隔线
files.add(Exit);
edit.add(Cut);
edit.add(Copy);
edit.add(Paste);
edit.add(Delete);
edit.addSeparator();//分隔线
edit.add(Find);
edit.add(Replace);
edit.addSeparator();//分隔线
edit.add(SelectAll);
help.add(About);
setJMenuBar(mb);
text=newJTextArea();
add(newJScrollPane(text));//滚动面板
setSize(600,500);//设置窗口大小
setVisible(true);//使窗口显示
3.3事件处理
3.3.1编辑区键盘事件处理
text.addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
processTextArea();
}
}
);
3.3.2窗口事件处理
ClasswindowListenerextendsWindowAdapter{publicvoidwindowClosing(WindowEvente){
close();
}
}
3.3.3菜单项事件处理
classactionListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){
JMenuItemmi=(JMenuItem)e.getSource();
if(mi==New){//新建文件
text.setText("");
file=null;
}
elseif(mi==Exit){//退出
close();
}
elseif(mi==Cut){//剪切
stateBar.setText("已修改");
text.cut();
}
elseif(mi==Copy)//复制
text.copy();
elseif(mi==Paste){//粘贴
stateBar.setText("已修改");
text.paste();
}
elseif(mi==SelectAll)//全选
text.selectAll();
elseif(mi==Delete){//删除
stateBar.setTe