




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java课程设计报告 题 目:简单记事本程序的设计 院 (系):*学院 年级专业:*班 学生姓名: * 指导老师: * 目 录 TOC o 1-3 h z u HYPERLINK l _Toc187070659摘要1HYPERLINK l _Toc187070660前言2HYPERLINK l _Toc1870706611需求分析2HYPERLINK l _Toc187070662需求分析2HYPERLINK l _Toc187070663功能设计3HYPERLINK l _Toc1870706642.概要设计3HYPERLINK l _Toc187070665程序设计思路3HYPERLINK
2、 l _Toc187070666程序运行界面3HYPERLINK l _Toc187070667模块说明图4HYPERLINK l _Toc187070668程序流程图5HYPERLINK l _Toc187070669程序相关说明6HYPERLINK l _Toc1870706703.程序详细设计与分析6HYPERLINK l _Toc1870706713.1.初始化组件6HYPERLINK l _Toc1870706723.2.构建菜单栏及其下拉菜单6HYPERLINK l _Toc1870706733.3.“文件”菜单的事件监听7HYPERLINK l _Toc1870706743.4.
3、“编辑”菜单的事件监听8HYPERLINK l _Toc1870706753.5.异常处理9HYPERLINK l _Toc1870706764测试分析10HYPERLINK l _Toc1870706775源程序清单 PAGEREF _Toc187070677 h 12HYPERLINK l _Toc1870706786课程设计总结17HYPERLINK l _Toc1870706797致谢17HYPERLINK l _Toc187070680参考文献17 简单记事本程序的设计 摘要 该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,
4、粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。该程序主要用到了Java swing和事件监听等。关键字:记事本程序;Java语言;Jcreator前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单
5、、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开
6、发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。1需求分析需求分析现在网络上各种文档编辑器数不胜数,有 HYPERLINK :/ orsoon /Soft/4367.html o EmEditor Professional(文本编辑器)V7.00 Final 绿色汉化修正版 EmEditor , HYPERLINK :/ orsoon /Soft/4927.html o UEStudio (文本编辑器)绿色汉化版 V6.40a UEStudio , HYPERLINK :/ o
7、rsoon /Soft/4923.html o GridinSoft Notepad (文本编辑器)绿色多国语言版 V3.2.1.1 GridinSoft Notepad , HYPERLINK :/ orsoon /Soft/4779.html o Notepad+(文本编辑器)绿色中文版 V4.60 Notepad+, HYPERLINK :/ orsoon /Soft/6998.html o win32pad (文本编辑器)绿色汉化版 V1.5.10.3 win32pad , HYPERLINK :/ orsoon /Soft/4929.html o SkimEdit(文本编辑器)V3.
8、07 绿色汉化修正版 SkimEdit, HYPERLINK :/ orsoon /Soft/4906.html o UniRed (文本编辑器)V2.05 绿色版 UniRed, HYPERLINK :/ orsoon /Soft/2627.html o xint (文本编辑器)v4.3 绿色版 xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个
9、简单的记事本程序。功能设计本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1).菜单中有“文件”,“编辑”,“关于”三个主菜单。(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新 建文件,打开文件,保存文件,退出记事本。 (3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行设置。 (4)“关于”菜单中有关于记事本程序的制作日期,作者等信息2.概要设计程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu
10、,JTextPane,JFileChooser等。JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。程序运行界面模块说明图implementsActionListenermynotepadJFrameextends 图1在图1中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。mynotepad的构造方法添加事件监听初始化容器组件初始化初始化文字输入区菜单栏关于编辑文件关于颜色粘贴复制剪切退出保存打开新建 图2 在图2中,构造一个mynotepad类时要做三件
11、事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。程序流程图启动程序输入文字 False False 关于颜色粘贴复制退出剪切保存打开新建 true true true true true true true trueabout.show()file=nullcolorfile=openfilesavingcontent.copy()System.exit(0)content.cut()关闭或退出程序 图3程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个mynotepad类继承JFr
12、ame作为最底层容器。 (1).Textcontent为程序文本输入区。 (2).Menu为菜单栏。 (3).AboutDialog为关于对话框。 (4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。3.程序详细设计与分析.初始
13、化组件initTextContent(); initMenu(); initAboutDialog();JMenu menus=new JMenunew JMenu(文件),new JMenu(编辑),new JMenu(关于);JMenuItem optionofmenu=new JMenuItemnew JMenuItem(新建),new JMenuItem(打开),new JMenuItem(保存),new JMenuItem(退出) , new JMenuItem(复制), new JMenuItem(剪切),new JMenuItem(粘贴),new JMenuItem(颜色) ,
14、new JMenuItem(关于) ;.“文件”菜单的事件监听ActionListener action=new ActionListener() public void actionPerformed(ActionEvent e) String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if(新建.equals(name)content.setText();file=null;else if(打开.equals(name) if(file !=null)openfile.setSelectedFile(
15、file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold(); else if(保存.equals(name) if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.A
16、PPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if(退出.equals(name) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION);3.4.“编辑”菜单的事件监听else if(剪切.equals(name) content.cut(); else if(复制.equals(name) content.copy(); else if(粘贴.equals(name)
17、 content.paste(); else if(颜色.equals(name) color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); .异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。saving() try FileWriter Writef=new FileWriter(file)
18、; Writef.write(content.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer);(); 4测试分析图4:点击“文件”运行情况 图5
19、:“文件”菜单中的“打开”对话框 图6:“编辑”中的“颜色”设置功能 图7:“关于”对话框5源程序清单import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent();/初始化组件 initMenu(); initAboutDialog(); void initTextContent() getConte
20、ntPane().add(new JScrollPane(content); /滚动面板对象 JTextPane content=new JTextPane(); /创建/内容输入区 JFileChooser openfile=new JFileChooser();/创建打开文件对话框 JColorChooser opencolor=new JColorChooser();/颜色选择 JDialog about=new JDialog(this);/关于对话框 JMenuBar menu=new JMenuBar();/创建菜单栏 /菜单栏的各个菜单项JMenu menus=new JMenu
21、new JMenu(文件),new JMenu(编辑),new JMenu(关于); /“文件”菜单项的四个下拉菜单JMenuItem optionofmenu=new JMenuItemnew JMenuItem(新建),new JMenuItem(打开),new JMenuItem(保存),new JMenuItem(退出) , /编辑菜单的四个下拉菜单 new JMenuItem(复制), new JMenuItem(剪切),new JMenuItem(粘贴),new JMenuItem(颜色) , new JMenuItem(关于) ; void initMenu() for(int
22、i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.setJMenuBar(menu); ActionListener action=new ActionListener() /添加事件监听 public void actionPerformed(ActionEvent e) String name = e.getActionCommand
23、();JMenuItem MI=(JMenuItem)e.getSource();if(新建.equals(name)/监听“新建”事件content.setText();file=null;else if(打开.equals(name)/监听“打开”事件 if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFi
24、le();/打开选择文件 unfold(); else if(保存.equals(name)/监听“保存”事件 if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if(退出.equals(name) mynotepad f=new mynotepad(); int
25、s=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION);/提示用户是否退出 if(s=JOptionPane.YES_OPTION) System.exit(0); else if(剪切.equals(name)/监听“剪切”事件 content.cut(); else if(复制.equals(name) /监听“复制”事件 content.copy(); else if(粘贴.equals(name) /监听“粘贴”事件 content.paste(); else if(颜色.equals(name) /监听“
26、颜色”事件 color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); /对颜色进行设置 else if(关于.equals(name) about.setSize(300,150);/设置“关于”对话框大小为300150 about.show();/显示“关于”对话框 ; void saving() try FileWriter Writef=new FileWriter(file);/创建文件写入器 Writef.write(content.getText(); Writef.clo
27、se(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file);/文件读入 int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); void initAboutDialog() a
28、bout.setLayout(new GridLayout(3,1);/将“关于”对话框设置为3行1列 about.getContentPane().setBackground(Color.white);/设置对话框背景色 about.getContentPane().add(new JLabel(我的记事本程序);/对话框内容 about.getContentPane().add(new JLabel(制 Fwx); about.getContentPane().add(new JLabel(2007年12月); about.setModal(true); /设置对话框前端显示 about.
29、setSize(100,100); about.setLocation(250,170); /设置对话框显示位置 ; public class Notepadpublic static void main(String args) /入口main函数 mynotepad noted=new mynotepad(); noted.addWindowListener(new WindowAdapter() ); noted.setTitle(我的记事本程序); /记事本标题 noted.setSize(640,320); /设置记事本大小 noted.show(); noted.setLocati
30、on(150,100); /设置记事本显示位置 6课程设计总结经过差不多两个星期的努力,基本上完成我的Java课程设计简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个记事
31、本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。7致谢 最后要感谢我的java程序设计的*老师,没有他上课时的教导,而且在课程设计时给了我们帮助。可以这么说,如果没有做Java这门课的课程设计,那么我从Java课堂上学习到的Java知识还会处于一知半解的状态。所以衷心感谢王老师,感谢在课程设计中给我提供帮助的同学们!参考文献2.雷之宇,Java项目开发实践完整代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;import jav
32、a.io.*;class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent(); initMenu(); initAboutDialog(); void initTextContent() getContentPane().add(new JScrollPane(content); JTextPane content=new JTextPane(); JFileChooser openfile=new JFileChooser(); JColorChooser
33、opencolor=new JColorChooser(); JDialog about=new JDialog(this); JMenuBar menu=new JMenuBar(); JMenu menus=new JMenunew JMenu(文件),new JMenu(编辑),new JMenu(关于);JMenuItem optionofmenu=new JMenuItemnew JMenuItem(新建),new JMenuItem(打开),new JMenuItem(保存),new JMenuItem(退出) , new JMenuItem(复制), new JMenuItem(
34、剪切),new JMenuItem(粘贴),new JMenuItem(颜色) , new JMenuItem(关于) ; void initMenu() for(int i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.setJMenuBar(menu); ActionListener action=new ActionListener
35、() public void actionPerformed(ActionEvent e) String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if(新建.equals(name)content.setText();file=null;else if(打开.equals(name) if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(return
36、Val=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold(); else if(保存.equals(name) if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if(退出.equals(name) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION); if(s=JOptionPane.YES_OPTION) System.exit(0); els
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司餐饮经营协议8篇
- 房屋竞价的买卖合同范本8篇
- 广州市市区房屋租赁合同书(28篇)
- 合同协议-项目申报合同6篇
- 家政服务协议书(沈阳示范文本)8篇
- 简单的离婚财产分割协议书模板8篇
- 商品房买卖合同补充协议
- 委托书之资金委托合同6篇
- 相互专利授权与转让协议
- 二零二五年度区域代理协议:智能家电市场拓展
- 2024年上海中考化学终极押题密卷三含答案
- DB14∕T 1334-2017 波形钢腹板预应力混凝土组合结构桥梁悬臂施工与验收规范
- ECharts数据可视化课件 第4章 雷达图、旭日图和关系图
- 幸福女人课件教学课件
- 天翼云从业者考试复习题及答案
- 机械零件维修技术操作规程
- 2024年江苏省南京外国语丘班、南京一中数理人才班特长生招生数学试卷
- 2024年内蒙古呼和浩特市中考数学试卷(附答案)
- 江苏省行政执法人员近年考试真题(含解析)
- 护理美学-第八章 护士的非语言美
- DL∕T 2591-2023 垃圾发电厂垃圾储运系统运行规程
评论
0/150
提交评论