您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页JAVA简单记事本程序设计实验报告(带源码)

JAVA简单记事本程序设计实验报告(带源码)

来源:伴沃教育
JAVA程序设计

实 验 报 告

系: 信息工程系

专 业: 计算机应用技术

班 级: 11计算机01班

姓 名: Civen

任课教师: XXX

实验题目: JAVA简单记事本程序设计

目 录

目 录 ..................................................................................... 1 一、引言 ..................................................................................... 2 1.1 课程设计目的 ............................................................... 2 1.2 题目说明 ..................................................................... 2 1.3 开发工具介绍 ............................................................... 2 二、总体设计 ..............................................错误!未定义书签。 2.1系统开发平台 ...................................错误!未定义书签。 2.2 系统流程图 ..................................................................... 4 2.3功能结构图 .......................................错误!未定义书签。 2.4数据库设计 .......................................错误!未定义书签。 三、详细说明 ............................................................................. 4 3.1 系统实施 ..........................................错误!未定义书签。 四、系统的调试和运行 ............................................................. 9 五、课程设计总结 ..................................................................... 9 六、参考文献 ............................................................................. 9 附录(源程序代码) ............................................................... 10

一、引言

1.1 课程设计目的

1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 2) 课程设计为学生提供了一个既动手又动脑,实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;

3) 培养学生在项目开发中团队合作精神,创新意识及能力。

1.掌握窗口、菜单等高级组件的应用。

2.掌握Java Swing的使用方法。

3.了解GUI应用程序的创建过程与方法。

1.2 题目说明

课题:学生成绩管理

4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件 新建、打开、保存、退出 编辑 剪切、拷贝、粘贴、查找 帮助 关于

5.实现文件和编辑菜单里的功能

1.3 开发工具介绍

Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同

一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似微软公司的Visual Studio和Sun 微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse 联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来较困难。

二、总体设计

2.1系统开发平台

前端使用JAVA设计

2.2 系统流程图

开始 Y 输入文字? N 新建打开保存另存为剪切复制粘贴删除查找替换全选关于

退出结束 图3.1主流程图

2.3功能结构图

3.2.2 “文件”菜单操作流程图

开始 “文件”菜单 新建打开保存另存为 File=null N 用JFileChooser()选择所有打开文件路径 用unfold()读取所选的文件内容到记事本 图3.2 “文件”菜单操作流程图

用sava()保存文件 用JFileChooser()选择文件另存的路径 用sava()保存文件 退出或关闭 文件是否修改 Y 用sava()保存文用close()关闭文件 结束

3.2.3 “编辑”菜单操作流程图

开始 “编辑”菜单 剪切 复制 粘贴 删除 查找 替换 全选 设置修改标签,text.cut() 用 text.copy()实现 设置修改标签, text.paste() 设置修改标签, text.replaceRange(\"\start, end); 用FindAndReplace{}方法实现 用text.selectAll()实现 退出或关闭 N 文件是否修改 Y 用sava()保存文件并 用close()关闭文件 结束 图3.3 “编辑”菜单操作流程图

3.2.4 “帮助”菜单操作流程图

开始 “帮助”菜单 关于记事本 显示记事本的有关信息 结束 图3.4 “帮助”菜单操作流程图

三、详细说明

设计两个类,一个jsb类,具有程序的要求和功能再创建一个keshe主类,在主类中创建一个jsb类的对象,就可以直接在编译器中运行程序。

1:界面设计

在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。 2:功能设计

在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。 3:代码设计

编写每个控件的相关代码,并进行调试。

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,\"打开文件\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); } }

四、系统的调试和运行

1:界面调试

确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成加入菜单控件后,不能缺少 f.setMenuBar(menubar); 语句,将menubar设为主窗体的菜单条,否则会看不到菜单栏。 如图:

2:功能调试

对所有菜单项进行注册监听。当进行除保存以外的菜单项的功能外,在actionPerformed中要编写判断界面是否已经打开或者编辑了文件,如果是,在进行别的功能之前,先对本文件的保存功能,以免文件的丢失。在具体实现中可以用变量i来判断文件是否处于保存状态。

五、课程设计总结

本次课程设计,让我获益匪浅,不仅更深入的了解Java这门学科,更使自己有了继续探索的兴趣。

于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我定将“认真严谨时刻作为自的谨言。与此同时,本小组成员的互帮互助,让我体会到了团结的力量,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计在我的学生生涯中启上了至关重要的作用。

最后,真诚的感谢陈珂、顾成喜老师的指导和教诲。

六、参考文献

按照以下格式书写

[1] 权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004,

7(3):17-18.

[2] 刘小洪,邹鹏. 商业银行客户关系价值管理模型研究[J].管理科学,2005,

18(3):57-60.

附录(源程序代码)

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;if.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } });

f.setSize(400,300); f.show();

diaFind=new Dialog(f,\"查找\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,\"\ 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,\"\VE); 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(\"\ }

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(); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务