java记事本课程设计教学文案Word文件下载.docx
- 文档编号:18679214
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:20
- 大小:232.42KB
java记事本课程设计教学文案Word文件下载.docx
《java记事本课程设计教学文案Word文件下载.docx》由会员分享,可在线阅读,更多相关《java记事本课程设计教学文案Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
明确选题,查阅相关资料——1天
题目分析、总体设计、编写代码——2天
自定义类说明,程序流程图,详细设计,事件处理
调试测试、总结,撰写课程设计报告——1天
测试分析
修改、完善课程设计报告——1天
设计体会
指导教师签字
年月日
课程设计(大作业)成绩
学号:
姓名:
指导教师:
设计一个具有GUI界面的记事本
总结:
在经过了将近一周的Java课程的学习之后,对于Java这门优秀的编程语言有了更深层次的认识。
在学习的过程中,通过老师的教学指导、课外对相关知识的阅读和上机实际操作,对于它所具有的面向对象、与平台无关、安全、稳定和多线程等特点,有了更深刻更直观的认识和理解。
从选择课程设计的题目开始,到需求分析,开发工具的选择,最终到系统的设计思路,关键代码的设计,每一步都认真思考分析完成。
有点遗憾的是,起初在设计时原本打算能更加完善一些功能的设计,但因为确实有难度就此作罢。
在以后的学习中,我会进一步加深对于JAVA的理解和使用,通过阅读相关知识拓宽自己对于JAVA的了解。
指导教师评语:
成绩:
填表时间:
指导教师签名:
一、题目分析
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
(4)“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。
二、总体设计
2.1自定义类说明
2.1.1类名:
jishiben
(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.2程序流程图
2.2.1主流程图
2.2.2“文件”菜单操作流程图
2.2.3“编辑”菜单操作流程图
2.2.4“帮助”菜单操作流程图
三、实验器材
Ediplus3,PC机
四、制作步骤
4.1jishiben类的实现
privateJMenuItemOpen,New,Save,SaveAs,Exit,Cut,Copy,
Paste,Delete,Find,Replace,SelectAll,About;
4.2GUI程序界面设计
publicjishiben(){//构造函数
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.add(SelectAll);
help.add(About);
setJMenuBar(mb);
text=newJTextArea();
add(newJScrollPane(text));
//滚动面板
setSize(600,500);
//设置窗口大小
setVisible(true);
//使窗口显示
4.3事件处理
4.3.1编辑区键盘事件处理
text.addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
processTextArea();
}
}
);
4.3.2窗口事件处理
ClasswindowListenerextendsWindowAdapter{publicvoidwindowClosing(WindowEvente){
close();
}
}
4.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){//粘贴
text.paste();
elseif(mi==SelectAll)//全选
text.selectAll();
elseif(mi==Delete){//删除
stateBar.setText("
intstart;
intend;
start=text.getSelectionStart();
end=text.getSelectionEnd();
text.replaceRange("
start,end);
}
elseif(mi==Open){//打开
JFileChooserjf=newJFileChooser();
//创建打开文件对话框
if(file!
=null)
jf.setSelectedFile(file);
intreturnVal=jf.showOpenDialog(jishiben.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=jf.getSelectedFile();
unfold();
elseif(mi==About){//关于
Stringmessage="
----记事本----"
+"
感谢您的使用!
;
JOptionPane.showMessageDialog(jishiben.this,message,"
关于..."
JOptionPane.PLAIN_MESSAGE);
elseif(mi==Save)//保存
save();
elseif(mi==SaveAs){//另存为
jf.setSelectedFile(file);
intreturnVal=jf.showSaveDialog(jishiben.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=jf.getSelectedFile();
save();
}
elseif(mi==Find){//查找
FindAndReplacefr=newFindAndReplace();
fr.setVisible(true);
fr.setLocation(getLocation());
elseif(mi==Replace){//替换
}
五、方案比较
(1)程序运行界面如下:
(2)“文件”菜单的菜单项:
(3)“编辑”菜单的菜单项:
(4)打开文件及另存文件时的界面:
由于打开文件和另存文件都要寻找路径,所以开始时界面相同。
(5)打开了某一个文本文件是的截图:
(6)使用查找替换时的截图:
在“查找内容”的框内输入查找的内容,再按“查找下一个”这个按钮就可以查找。
如果要替换所查找的内容,就在“替换字串”的框内输入要替换成的内容。
如图中就是把“风水”替换“风”。
(7)记事本关闭或退出时的截图:
当文件发生了剪切、删除、粘贴等操作,或者在编辑区中输入了字符,即文件进行了修改,当点击“文件”菜单中的“退出”项或者点击了窗口的关闭按钮时,就会弹出一个“保存文件?
”的对话框。
如果文件没有发生修改,关闭或者退出时,直接关闭了记事本程序。
六、程序代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
classmynotepadextendsJFrame{
Filefile=null;
Colorcolor=Color.red;
mynotepad(){
initTextContent();
………………………………………………//初始化组件
initMenu();
initAboutDialog();
voidinitTextContent(){
getContentPane().add(newJScrollPane(content));
……//滚动面板对象
JTextPanecontent=newJTextPane();
……………………/创建/内容输入区
JFileChooseropenfile=newJFileChooser();
………………//创建打开文件对话框
JColorChooseropencolor=newJColorChooser();
…………//颜色选择
JDialogabout=newJDialog(this);
…………………………//关于对话框
JMenuBarmenu=newJMenuBar();
………………………//创建菜单栏
//菜单栏的各个菜单项
JMenu[]menus=newJMenu[]{
newJMenu("
),
关于"
)
};
//“文件”菜单项的四个下拉菜单
JMenuItemoptionofmenu[][]=newJMenuItem[][]{{
newJMenuItem("
},
//编辑菜单的四个下拉菜单
{
),
颜色"
},
{
newJMenuItem("
voidinitMenu(){
for(inti=0;
i<
menus.length;
i++){
menu.add(menus[i]);
for(intj=0;
j<
optionofmenu[i].length;
j++){
menus[i].add(optionofmenu[i][j]);
optionofmenu[i][j].addActionListener(action);
this.setJMenuBar(menu);
}
ActionListeneraction=newActionListener(){//添加事件监听
publicvoidactionPerformed(ActionEvente){
Stringname=e.getActionCommand();
JMenuItemMI=(JMenuItem)e.getSource();
if("
.equals(name)){……………………………………//监听“新建”事件
content.setText("
file=null;
}elseif("
.equals(name)){………………………………//监听“打开”事件
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
………………//打开选择文件
unfold();
}elseif("
.equals(name)){………………………………//监听“保存”事件
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showSaveDialog(mynotepad.this);
saving();
.equals(name)){
mynotepadf=newmynotepad();
ints=JOptionPane.showConfirmDialog(f,"
退出?
"
JOptionPane.YES_NO_OPTION);
…………………………//提示用户是否退出
if(s==JOptionPane.YES_OPTION)
System.exit(0);
.equals(name)){………………………………//监听“剪切”事件
content.cut();
.equals(name)){………………………………//监听“复制”事件
content.copy();
.equals(name)){………………………………//监听“粘贴”事件
content.paste();
.equals(name)){………………………………//监听“颜色”事件
color=JColorChooser.showDialog(mynotepad.this,"
color);
content.setForeground(color);
……………………………//对颜色进行设置
about.setSize(300,150);
…………………//设置“关于”对话框大小为300×
150
about.show();
…………………………//显示“关于”对话框
voidsaving(){
try{
FileWriterWritef=newFileWriter(file);
………………//创建文件写入器
Writef.write(content.getText());
Writef.close();
catch(Exceptione){e.printStackTrace();
}
voidunfold(){
FileReaderReadf=newFileReader(file);
…………//文件读入
intlen=(int)file.length();
char[]buffer=newchar[len];
Readf.read(buffer,0,len);
Readf.close();
content.setText(newString(buffer));
}catch(Exceptione){e.printStackTrace();
voidinitAboutDialog(){
about.setLayout(newGridLayout(3,1));
……………//将“关于”对话框设置为3行1列
about.getContentPane().setBackground(Color.white);
//设置对话框背景色
about.getContentPane().add(newJLabel("
我的记事本程序"
));
//对话框内容
制作者:
Fwx"
2007年12月"
about.setModal(true
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 记事本 课程设计 教学 文案