JAVA程序设计综合训练记事本.docx

上传人:b****5 文档编号:6195468 上传时间:2023-01-04 格式:DOCX 页数:35 大小:405.18KB
下载 相关 举报
JAVA程序设计综合训练记事本.docx_第1页
第1页 / 共35页
JAVA程序设计综合训练记事本.docx_第2页
第2页 / 共35页
JAVA程序设计综合训练记事本.docx_第3页
第3页 / 共35页
JAVA程序设计综合训练记事本.docx_第4页
第4页 / 共35页
JAVA程序设计综合训练记事本.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

JAVA程序设计综合训练记事本.docx

《JAVA程序设计综合训练记事本.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计综合训练记事本.docx(35页珍藏版)》请在冰豆网上搜索。

JAVA程序设计综合训练记事本.docx

JAVA程序设计综合训练记事本

JAVA程序设计——记事本

一、引言

1.1项目的名称

系统WindowsXP中的记事本。

1.2项目背景和目标

目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。

它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。

Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。

Java的平台标准有JavaME,JavaSE和JavaEE。

Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。

目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。

以上的每种开发工具都有优缺点,对于我们来说,重要的是要根据自己需求来选择一种合适的开发工具。

在本程序设计中,因为需要设计的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的Eclipse开发工具。

为了配合这个Java程序设计课程,帮助我深入学习掌握Java语言,熟练运用这个工具而设立的设计。

通过课程设计各个项目的综合训练,加强我对JAVA语言的理解,检验我对专业理论知识理解与掌握的程度,锻炼我综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高我的综合素质,为我接下来的相关专业打好基础。

1.3顶目的可行性研究

基于上学期所学到的JAVA程序设计中的各章以及各节所涉及到的知识点,本程序在理论上书籍以及资料中完全可以完成。

 

二、需求分析

2.1系统概述

编写一个记事本程序,要求:

(1)用图形用户界面实现。

(2)能实现编辑、保存、另存为、查找替换等功能。

(3)执行这些操作后,可以退出关闭记事本。

2.2系统运行环境

1.硬件环境

处理器:

InterPentium166MX或更高

内存:

32M以上

硬盘空间:

1GB以上

显卡:

SVGA显示适配器

2.软件环境

操作系统:

WindowsXP

2.3功能需求描述

本程序构建的记事本程序参照了WindowsXP操作系统的记事本工具,其功能有以下几个方面:

(1)菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。

(2)“文件”有“新建”“打开”“保存”……“退出”七个子菜单:

分别用于新建文件,打开文件,保存文件……退出记事本。

(3)“编辑”中有“撤消”“剪切”“复制”“粘贴”……“时间/日期”十一个字菜单:

用于撤消文字,剪切文字,复制文字,粘贴文字……子菜单来对文字进行设置。

(4)“格式”菜单中有自动换行和字体等信息。

(5)“查看”中有“状态栏”这个子菜单。

(6)“帮助”菜单中有“帮助主题”和“关于记事本”这两个子菜单。

 

三、总体设计

3.1开发与设计的总体思想

在本程序中,主要是设计菜单和添加事件监听器。

设计过程中申明了很多的包,用到了FileDialog,TextArea,Menu,MenuBar,MenuItem,JFrame,JButton,JLable,JFileChooser等。

Menu用来制作菜单,菜单包括“文件”“编辑”……。

MenuItem用来制作菜单项,菜单项包括“新建”,“打开”……。

JFrame主要用来创建对象。

为了用于对文件或目录进行浏览和选择的对话框的设置,所以运用了JFileChooser。

3.2系统模块结构图

3.3模块设计

菜单模块

该模块负责各菜单间以及子菜单的创建及功能实现。

3.4系统流程推述

四、详细设计

4.1主界面模块

申明文件所在包:

importjava.io.File;

importjava.io.FileReader;

importjava.io.IOException;

importjava.io.FileNotFoundException;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.FileWriter;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.awt.FileDialog;

importjava.awt.TextArea;

importjava.awt.Toolkit;

importjava.awt.Window;

importjava.awt.event.KeyEvent;

importjava.awt.datatransfer.Clipboard;

importjava.awt.datatransfer.DataFlavor;

importjava.awt.datatransfer.StringSelection;

importjava.awt.datatransfer.Transferable;

importjava.awt.datatransfer.UnsupportedFlavorException;

importjava.awt.MenuShortcut;

importjava.awt.Menu;

importjava.awt.MenuBar;

importjava.awt.MenuItem;

importjavax.swing.JButton;

importjavax.swing.JDialog;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JTextField;

importjavax.swing.JFileChooser;

importjavax.swing.filechooser.FileNameExtensionFilter;

importjavax.swing.JOptionPane;

importjava.util.logging.Level;

importjava.util.logging.Logger;

主类的实现

1.构建具体实现记事本的类:

主要是给显式成员初始化(如果在成员说明中写有简单的赋值表达式,就可以在构造对象时进行显式的成员初始化。

PublicclassNoteBook{

privateTextAreacontent;

privateStringfilePath="";//先让路径为空

ToolkittoolKit=Toolkit.getDefaultToolkit();

Clipboardclipboard=toolKit.getSystemClipboard();

}

2.定义一个无参构造方法

每个类都必须至少有一个构造方法(如果没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法,此时参数列表及方法体均为空,所生成的对象的属性值也为零或空。

PublicNoteBook{

创建了JFrame对象

……

……

……

}

3.创建一个JFrame对象;并设置相关属性

JFrameframe=newJFrame("我的记事本");

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

frame.setBounds(100,100,500,500);

frame.setResizable(true);

frame.setVisible(true)

4.创建并添加文本框

content=newTextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY);

frame.add(content);

content.setVisible(true);

content.requestFocusInWindow();

4.2模块设计

(一)菜单栏的建立,组件的添加

1.主菜单

1)创建菜单栏

MenuBarmenubar=newMenuBar();

2)将菜单栏加入到框架中

frame.setMenuBar(menubar);

3)创建“文件”菜单,"编辑"菜单,“格式”菜单,“查看”菜单,“帮助”菜单

Menujm1=newMenu("文件(F)");

Menujm2=newMenu("编辑(E)");

Menujm3=newMenu("格式(F)");

Menujm4=newMenu("查看(F)");

Menujm5=newMenu("帮助(H)");

4)将菜单加入到菜单栏中

 menubar.add(jm1);

menubar.add(jm2);

menubar.add(jm3);

menubar.add(jm4);

menubar.add(jm5);

2.添加菜单项到主菜单中

1)“文件”菜单项

(创建“新建”,“打开”,“保存”,“另存为”,“页面设置”,“打印”,“退出”这些子菜单项并为他们添加到菜单上)

MenuItemjmt1=newMenuItem("新建(N)");

jmt1.setShortcut(newMenuShortcut(KeyEvent.VK_N));

jm1.add(jmt1);

MenuItemjmt2=newMenuItem("打开(O)");

jmt2.setShortcut(newMenuShortcut(KeyEvent.VK_O));

jm1.add(jmt2);

MenuItemjmt3=newMenuItem("保存(S)");

jmt3.setShortcut(newMenuShortcut(KeyEvent.VK_S));

jm1.add(jmt3);

MenuItemjmt4=newMenuItem("另存为(A)");

jmt4.setShortcut(newMenuShortcut(KeyEvent.VK_A,false));

jm1.add(jmt4);

MenuItemjmt5=newMenuItem("页面设置(U)");

jmt5.setShortcut(newMenuShortcut(KeyEvent.VK_U,false));

jm1.add(jmt5);

jmt5.setEnabled(false);

MenuItemjmt6=newMenuItem("打印(P)");

jmt6.setShortcut(newMenuShortcut(KeyEvent.VK_P,false));

jm1.add(jmt6);

jmt6.setEnabled(false);

jm1.addSeparator();

MenuItemjmt7=newMenuItem("退出(X)");

jmt7.setShortcut(newMenuShortcut(KeyEvent.VK_P,false));

jm1.addSeparator();

jm1.add(jmt7);

2)“编辑”菜单项

(创建“撤消”,“剪切”,“复制”,“粘贴”,“删除”,“查找”,“查找下一个”,“替换”,“转到”,“全选”,“日期/时间”这些子菜单项,并添加到菜单上)

MenuIteme1=newMenuItem("撤销");

e1.setShortcut(newMenuShortcut(KeyEvent.VK_Z,false));

jm2.add(e1);

jm2.addSeparator();

MenuIteme2=newMenuItem("剪切");

e2.setShortcut(newMenuShortcut(KeyEvent.VK_X,false));

jm2.add(e1);

jm2.addSeparator();

MenuIteme3=newMenuItem("复制");

e3.setShortcut(newMenuShortcut(KeyEvent.VK_C,false));

jm2.add(e3);

MenuIteme4=newMenuItem("粘贴");

e4.setShortcut(newMenuShortcut(KeyEvent.VK_V,false));

jm2.add(e4);

MenuIteme5=newMenuItem("删除");

e5.setShortcut(newMenuShortcut(KeyEvent.VK_DELETE,false));

jm2.add(e5);

jm2.addSeparator();

MenuIteme6=newMenuItem("查找");

e6.setShortcut(newMenuShortcut(KeyEvent.VK_F,false));

jm2.add(e6);

MenuIteme7=newMenuItem("查找下一个");

e7.setShortcut(newMenuShortcut(KeyEvent.VK_3,false));

jm2.add(e7);

MenuIteme8=newMenuItem("替换");

e8.setShortcut(newMenuShortcut(KeyEvent.VK_H,false));

jm2.add(e8);

MenuIteme9=newMenuItem("转到");

e9.setShortcut(newMenuShortcut(KeyEvent.VK_G,false));

jm2.add(e9);

jm2.addSeparator();

MenuIteme10=newMenuItem("全选");

e10.setShortcut(newMenuShortcut(KeyEvent.VK_A,false));

jm2.add(e10);

MenuIteme11=newMenuItem("日期/时间");

e11.setShortcut(newMenuShortcut(KeyEvent.VK_5,false));

jm2.add(e11);

3)“格式”菜单项

(创建子菜单项“自动换行”,并添加到菜单上)

MenuItemgs01=newMenuItem("自动换行(W)");

jm3.add(gs01);

4)“查看”菜单项

(创建子菜单项“状态栏”,并添加到菜单上)

MenuItemfind=newMenuItem("状态栏(S)");

jm4.add(find);

find.setEnabled(false);

5)“帮助”菜单项

(创建子菜单项“帮助主题”和“关于记事本”,并添加到菜单上)

MenuItemhelp01=newMenuItem("帮助主题(H)");

jm4.add(help01);

help01.setEnabled(false);

jm4.addSeparator();

MenuItemhelp02=newMenuItem("关于记事本(A)");

jm4.add(help02);

(二)功能设计

对每个菜单分别进行注册事件监听程序,点击不同菜单项时,显示不同界面。

要想记事本完成需求分析中相应的功能,还必须添加事件监听器。

本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。

另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

(三)异常处理

在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。

本程序中选用的异常处理机制是try,catch。

捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。

4.3代码部分

importjava.io.File;

importjava.io.FileReader;

importjava.io.IOException;

importjava.io.FileNotFoundException;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.FileWriter;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.awt.FileDialog;

importjava.awt.TextArea;

importjava.awt.Toolkit;

importjava.awt.Window;

importjava.awt.event.KeyEvent;

importjava.awt.datatransfer.Clipboard;

importjava.awt.datatransfer.DataFlavor;

importjava.awt.datatransfer.StringSelection;

importjava.awt.datatransfer.Transferable;

importjava.awt.datatransfer.UnsupportedFlavorException;

importjava.awt.MenuShortcut;

importjava.awt.Menu;

importjava.awt.MenuBar;

importjava.awt.MenuItem;

importjavax.swing.JButton;

importjavax.swing.JDialog;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JTextField;

importjavax.swing.JFileChooser;

importjavax.swing.filechooser.FileNameExtensionFilter;

importjavax.swing.JOptionPane;

importjava.util.logging.Level;

importjava.util.logging.Logger;

publicclassNoteBook{

privateTextAreacontent;

privateStringfilePath="";//先让路径为空

ToolkittoolKit=Toolkit.getDefaultToolkit();

Clipboardclipboard=toolKit.getSystemClipboard();

publicNoteBook(){

finalJFrameframe=newJFrame("我的记事本");

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

frame.setBounds(100,100,500,500);

frame.setResizable(true);

frame.setVisible(true);

content=newTextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY);

frame.add(content);

content.setVisible(true);

content.requestFocusInWindow();

MenuBarmenubar=newMenuBar();

frame.setMenuBar(menubar);

Menujm1=newMenu("文件(F)");

Menujm2=newMenu("编辑(E)");

Menujm3=newMenu("格式(F)");

Menujm4=newMenu("查看(F)");

Menujm5=newMenu("帮助(H)");

menubar.add(jm1);

menubar.add(jm2);

menubar.add(jm3);

menubar.add(jm4);

menubar.add(jm5);

MenuItemjmt1=newMenuItem("新建(N)");

jmt1.setShortcut(newMenuShortcut(KeyEvent.VK_N));

jm1.add(jmt1);

MenuItemjmt2=newMenuItem("打开(O)");

jmt2.setShortcut(newMenuShortcut(KeyEvent.VK_O));

jm1.add(jmt2);

MenuItemjmt3=newMenuItem("保存(S)");

jmt3.setShortcut(newMenuShortcut(KeyEvent.VK_S));

jm1.add(jmt3);

MenuItemjmt4=newMenuItem("另存为(A)");

jmt4.setShortcut(newMenuShortcut(KeyEvent.VK_A,false));

jm1.add(jmt4);

MenuItemjmt5=newMenuItem("页面设置(U)");

jmt5.setShortcut(newMenuShortcut(KeyEvent.VK_U,fal

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

当前位置:首页 > 法律文书 > 调解书

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

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