JAVA简单记事本程序(源代码)课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

辽宁工业大学
JA V A程序设计课程设计(论文)题目: JAVA简单记事本程序
院(系):软件学院
专业班级:软件工程班
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
程序设计专题(报告)任务及评语
目录
第1章课程设计的目的与要求 (4)
1.1 课程设计目的 (4)
1.2 课程设计的实验环境 (4)
1.3 课程设计的预备知识 (4)
1.4 课程设计要求 (4)
第2章课程设计内容 (5)
2.1课题描述 (5)
2.2 系统设计 (5)
2.2.1功能分析 (5)
2.2.2面向对象设计 (5)
2.2.3详细设计 (7)
2.3程序实现 (10)
2.3.1源码分析 (10)
2.3.1运行结果 (14)
第3章总结 (18)
参考文献19
第1章课程设计的目的与要求
1.1 课程设计目的
《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2 课程设计的实验环境
硬件要求能运行Windows 9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3 课程设计的预备知识
熟悉JAVA语言及ECLIPSE开发工具。

1.4 课程设计要求
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章课程设计内容
2.1课题描述
简单记事本程序,使初级使用者很容易掌握。

从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。

本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。

2.2 系统设计
(1)设计编写一个简单记事本程序,要求包含以下菜单项:文件新建、打开、保存、退出编辑、剪切、拷贝、粘贴、查找、帮助、关于。

(2)实现文件和编辑菜单里的功能。

2.2.1功能分析
简单记事本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”,“编辑”,“帮助”三个主菜单。

(2)、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,“另存为文件”,“退出记事本”。

(3)、“编辑”中有“全选”、“复制”、“剪切”、“粘贴”四个字菜单:用于全选文字、复制文字、剪切文字、粘贴文字。

(4)、“帮助”菜单。

2.2.2面向对象设计
1.类的设计:
含有FileInAndOut类,该类中有两个方法分别是fileInput和fileWrite,
含有MyNote类,该类中含有接口ActionListener和接口重写的方法actionPerformed。

2.系统UML类图
2.2.3详细设计1、系统流程图:
2、功能结构图
2.3程序实现
2.3.1源码分析
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class FileInAndOut {
public static String fileInput(String fName){ String strRead="";
try {
FileReader fr=new FileReader(fName);
BufferedReader br=new BufferedReader(fr); String aline=new String();
while((aline=br.readLine())!=null)
strRead=strRead+aline;
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return strRead;
}
public static void fileWrite(String fName,String temp){ try {
FileWriter fw=new FileWriter(fName);
BufferedWriter bw=new BufferedWriter(fw);
bw.write(temp);
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class MyNote implements ActionListener {
private Frame f;
private TextArea ta;
private MenuBar mb;
private String strme[]={"文件","编辑","帮助"};
private String strmi[][]={{"新建","打开","保存","退出"},
{"剪切","拷贝","粘贴","查找"},
{"关于"}};
private String fileDir,fileName,temp="";
private Menu me[];
private MenuItem mi[][];
private Label l1,l2;
private TextField t1,t2;
private Button b1,b2,b3;
private Dialog diaFind,diaAbout;
public MyNote(){
f=new Frame("无标题--我的记事本");
ta=new TextArea();
f.add(ta);
mb=new MenuBar();
f.setMenuBar(mb);
mi=new MenuItem[strme.length][];
me=new Menu[strme.length];
for(int i=0;i<strme.length;i++){
me[i]=new Menu(strme[i]);
mb.add(me[i]);
mi[i]=new MenuItem[strmi[i].length];
for(int j=0;j<strmi[i].length;j++){
mi[i][j]=new MenuItem(strmi[i][j]);
me[i].add(mi[i][j]);
mi[i][j].addActionListener(this);
}
}
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.setSize(400,300);
f.show();
diaFind=new Dialog(f,"查找",true);
diaFind.setLayout(new FlowLayout());
diaFind.setSize(260,120);
l1=new Label("查找内容");
l2=new Label("替换为");
t1=new TextField(20);
t2=new TextField(20);
b1=new Button("下一个");
b2=new Button("替换");
b3=new Button("取消");
diaFind.add(l1);
diaFind.add(t1);
diaFind.add(l2);
diaFind.add(t2);
diaFind.add(b1);
diaFind.add(b2);
diaFind.add(b3);
diaFind.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
diaFind.dispose();
}
});
}
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
if(cmd.equals("新建")){
fileDir="";
fileName="";
ta.setText("");
f.setTitle("无标题--我的记事本");
}
if(cmd.equals("打开")){
FileDialog diaOpen=new FileDialog(f,"",FileDialog.LOAD);
diaOpen.show();
fileDir=diaOpen.getDirectory();
fileName=diaOpen.getFile();
if(!fileName.equals("")){
ta.setText(FileInAndOut.fileInput(fileDir+fileName));
f.setTitle(fileName+"--我的记事本");
}
}
if(cmd.equals("保存")){
FileDialog diaSave=new FileDialog(f,"",FileDialog.SAVE);
diaSave.show();
fileDir=diaSave.getDirectory();
fileName=diaSave.getFile();
if(!fileName.equals("")){
FileInAndOut.fileWrite(fileDir+fileName,ta.getText());
f.setTitle(fileName+"--我的记事本");
}
}
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("剪切")){
int x,y;
x=ta.getSelectionStart();
y=ta.getSelectionEnd();
temp=ta.getSelectedText();
ta.replaceRange("",x,y);
}
if(cmd.equals("拷贝")){
temp=ta.getSelectedText();
}
if(cmd.equals("粘贴")){
ta.replaceRange(temp,ta.getSelectionStart(),ta.getSelectionEnd() );
}
if(cmd.equals("查找")){
diaFind.show();
}
if(cmd.equals("关于")){
}
}
public static void main(String[] args) {
new MyNote();
}
}
2.3.1运行结果
1:界面设计
创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。

主要代码:
f=new Frame(s);
p1=new TextArea("");
f.setSize(400,600);
f.setBackground(Color.white);
f.setVisible(true);
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("编辑");
menu3=new Menu("帮助");
item1=new MenuItem("新建");
item2=new MenuItem("打开");
item3=new MenuItem("保存");
item4=new MenuItem("另存为");
item5=new MenuItem("退出");
item6=new MenuItem("全选");
item7=new MenuItem("复制");
item8=new MenuItem("剪切");
item9=new MenuItem("粘贴");
item10=new MenuItem("关于");
menu1.add(item1);
menu1.add(item2);
menu1.add(item4);
menu1.add(item5);
menu2.add(item6);
menu2.add(item7);
menu2.add(item8);
menu2.add(item9);
menu3.add(item10);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
f.setMenuBar(menubar);
2:功能设计
对每个菜单项进行注册监听。

点击不同菜单项时,显示不同界面。

主要代码
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
item4.addActionListener(this);
item5.addActionListener(this);
item6.addActionListener(this);
item7.addActionListener(this);
item8.addActionListener(this);
item9.addActionListener(this);
item10.addActionListener(this);
3:代码设计
部分菜单项的相关代码:
新建文件
if (e.getSource()==item1)
{ if (i==0&&(ss.length()!=0)){ bc(); }
else
p1.setText("");i=0;f.setTitle("文件对话框"); }
打开文件
if (e.getSource()==item2)
{ fd=new FileDialog(f,"打开文件",0);
fd.setVisible(true);
try{ file=new File(fd.getDirectory(),fd.getFile());
f.setTitle(fd.getFile()+"文件对话框");
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String line = null;
String view = "";
while((line=br.readLine())!=null)
{ view += line+"\n"; }
p1.setText(view);
br.close();
fr.close(); }
catch(IOException expIn)
{} }
复制文件
if (e.getSource()==item7)
{ try{
String str=p1.getSelectedText();
if(str.length()!=0)
{ strt=str;
} }catch(Exception ex)
{ } }
粘贴文件
if (e.getSource()==item9)
{ if(strt.length()>0)
{ p1.insert(strt,p1.getCaretPosition()); }
退出记事本
if (e.getSource()==item5)
{ if (i==0 &&(ss.length()!=0))
{ bc(); } else { System.exit(0); } } 界面设计:
第3章总结
本次课程设计,让我更深层次地认识到Java及其强大的功能,获益匪浅,不仅更深入的了解Java这门学科,更加巩固了自己对java的认识与了解。

于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。

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

在今后的学习中,我定将“认真严谨时刻作为自的谨言。

总之,此次课程设计为我在日后的生活学习中启上了至关重要的作用。

参考资料
[1] 权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004.
[2].雷之宇,Java项目开发实践—网络篇,中国铁道出版社,2005.
[3].李茏怡,Java编程实例讲解,高等教育出版社,2005.11
[4] 刘小洪,邹鹏. 商业银行客户关系价值管理模型研究[J].管理科学,2005.
[5]孙全党王吴迪赵枫朝,Java程序设计应用教程,电子工业出版社,2006.
[6].赵玉阳,Java从入门到精通,清华大学出版社,2006.。

相关文档
最新文档