JAVA语言课程设计-记事本.doc_第1页
JAVA语言课程设计-记事本.doc_第2页
JAVA语言课程设计-记事本.doc_第3页
JAVA语言课程设计-记事本.doc_第4页
JAVA语言课程设计-记事本.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

* 实践教学实践教学 * 江西中医学院江西中医学院 2010 年秋季学期 java 语言语言课程设计课程设计 题题 目:目: 记事本记事本 专业班级:专业班级: 0909 计算机班计算机班 姓姓 名:名: 指导教师:指导教师: 成成 绩:绩: - 1 - 目 录 摘 要2 序 言3 正 文.4 1.需求分析 .4 2.功能设计.4 3.设计思路.4 4.模块说明图.4 5.程序运行界面.6 6.程序相关说明.8 源程序.8 设计总结.12 参考文献.13 - 2 - 摘要 该报告中的程序是使用 java 程序编写,使用的是 swing 设计的,能够进行 输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴, 剪切等功能,该程序还主要用到了 java swing 和容器(container) 、组件 (component) 、版面管理器(layout manager) 、事件监听器(event listener)等。 关键字:记事本程序;java 语言; 序言 java 的前身是 oak,它一开始只是被应用于消费性电子产品中。后来它 的开发者们发现它还可以被用于更大范围的 internet 上。1995 年,java 语言的名字从 oak 编程了 java。1997 年 j2se1.1 发布。1998 年 j2se1.2 发 布,标志 java2 的诞生。十多年来,java 编程语言及平台成功地运用在网 络计算及移动等各个领域。java 的体系结构由 java 语言、java class、java api、java 虚拟机组成。它具有简单、面向对象、健壮、安全、 结构中立、可移植和高效能等众多优点。java 支持多线程编程,java 运行 时系统在多线程同步方面具有成熟的解决方案。java 的平台标准有 java me,java se 和 java ee。java 发展到今天,它的卓越成就及在业界的地位 毋庸置疑。目前在众多的支持 java 的开发工具中主要的 7 有 java development kit,netbeans,jcreator,jbuilder,jdeveloper 和 eclipse 等。其中 java development kit 简称 jdk 是大多开发工具的基础。 以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己 的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,运用了许多用于 java 开发的工具包,比如 java.awt,java.swing,java.io 等包,大大简化了开发的复杂度,提高了效 率。 正文 1. 需求分析 现在网络上各种文档编辑器数不胜数,有 emeditor ,uestudio ,gridinsoft notepad ,notepad+,win32pad ,skimedit,unired, xint 。功能也是应有尽有,有能改变字体 - 3 - 的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵 或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太 繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个 文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照 这样一种使用需要设计了一个简单的记事本程序。简单的记事本程序。 2. 功能设计 本程序构建的记事本工具主要具备以下几种功能: (1)菜单中有“文件” , “编辑” ,二个主菜单。 (2)“文件”有“新建” “打开” “保存” “退出”四个子菜单, 分别用于新建文件,打开文件,保存文件,退出记事本。 (3)“编辑”菜单有“复制” “剪切” “查找” “粘贴”等子菜单。 3设计思路 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了 jscrollpane,jmenu,jfilechooser 等。jmenu 用来制作菜单,菜单 包括“文件” “编辑” “关于” 。jtextpane 主要用来输入文本。 4. 模块说明图 图 1 在图 1 中,首先创建一个名为 jishiben 的类并继承 jframe 类作为最 底层的容器。 jishiben implements extends actionlistener jframe jishiben 的 构造方法 - 4 - 图 2 在图 2 中,构造一个 jishiben 类时要做三件事情,分别是将窗口中 的组件的设置,与事件的处理分别交给 setupuicomponent()与 setupeventlistener()两个方法来处理。 5程序运行界面 图 3 记事本运行初始化界面 初始化容器 组件 添加事件监 听 菜单栏文字输入区 文件编辑格式 新 建 打 开 保 存 退 出 剪 切 复 制 粘 贴 查 找 自动 换行 初始化初始化 字体 - 5 - 图 4 记事本菜单栏中的“文件”菜单打开 图 5 记事本菜单栏中的“编辑”菜单打开 6.程序相关说明 - 6 - 整个记事本分为两块:菜单栏和内容输入区。本程序中首先定义一个 jishben 类继承 jframe 作为最底层容器。 (1)textarea 为程序文本输入区。 (2)menu 为菜单栏。 (3)aboutdialog 为关于对话框。 (4)要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件 监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中实 现了 actionlistener 接口,用来监听并处理所有菜单项和内容输入区为 事件源的事件。 源程序 import java.awt.borderlayout; import java.awt.container; import java.awt.font; import java.awt.event.inputevent; import java.awt.event.keyevent; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.mouselistener; import java.awt.event.windowadapter; import java.awt.event.keyadapter; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import java.awt.event.windowevent; import javax.swing.borderfactory; import javax.swing.jlabel; import javax.swing.jframe; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuitem; import javax.swing.jscrollpane; import javax.swing.jtextarea; import javax.swing.keystroke; import javax.swing.scrollpaneconstants; import javax.swing.swingconstants; import javax.swing.jpopupmenu; - 7 - import javax.swing.jframe; public class jishiben4 extends jframe private jmenuitem itemopen=new jmenuitem(); private jmenuitem itemsave=new jmenuitem(); private jmenuitem itemsaveas=new jmenuitem(); private jmenuitem itemclose=new jmenuitem(); private jmenu menu2; private jmenuitem itemcut=new jmenuitem(); private jmenuitem itemcopy=new jmenuitem(); private jmenuitem itempaste=new jmenuitem(); private jmenuitem itemfind=new jmenuitem(); private jmenu menu3; private jmenu menu4; private jmenu menu5; private jtextarea text=new jtextarea(); private jpopupmenu popupmenu; public jishiben4() super(“新建文本文件“); setupuicomponent(); setupeventlistener(); setvisible(true); private void setupuicomponent() setsize(640, 480); jmenubar menubar = new jmenubar(); jmenu menu1, menu2, menu3, menu4, menu5; jmenuitem itemsaveas, itemnew, itemclose, itemcut, itemcopy, itempaste, itemdel, itemfind, item12, item13, item14, item15; /声明 jmenuitem itemopen, itemsave; /设置“文件”菜单 menu1 = new jmenu(“文件“); /设置打开项 itemopen = new jmenuitem(“打开(o).“); - 8 - itemopen.setaccelerator(keystroke.getkeystroke(keyevent.vk_o, inputevent.ctrl_mask); /设置保存项 itemsave = new jmenuitem(“保存“); itemsave.setaccelerator(keystroke.getkeystroke(keyevent.vk_s, inputevent.ctrl_mask); /设置新建项 itemnew = new jmenuitem(“新建“); itemnew.setaccelerator(keystroke.getkeystroke(keyevent.vk_m, inputevent.ctrl_mask); /设置另存为项 itemsaveas = new jmenuitem(“另存为“); /设置关闭项 itemclose = new jmenuitem(“关闭“); itemclose.setaccelerator(keystroke.getkeystroke(keyevent.vk_q, inputevent.ctrl_mask); menu1.add(itemnew); menu1.addseparator(); /分隔线 menu1.add(itemopen); menu1.add(itemsave); menu1.add(itemsaveas); menu1.addseparator(); /分隔线 menu1.add(itemclose); /设置“编辑”菜单 menu2 = new jmenu(“编辑“); /设置“剪切”项 itemcut = new jmenuitem(“剪切“); itemcut.setaccelerator(keystroke.getkeystroke(keyevent.vk_x, inputevent.ctrl_mask); /设置“复制”项 itemcopy = new jmenuitem(“复制“); itemcopy.setaccelerator(keystroke.getkeystroke(keyevent.vk_c, inputevent.ctrl_mask); - 9 - /设置“黏贴”项 itempaste = new jmenuitem(“粘贴“); itempaste.setaccelerator(keystroke.getkeystroke(keyevent.vk_q, inputevent.ctrl_mask); /设置“查找”项 itemfind = new jmenuitem(“查找“); itemfind.setaccelerator(keystroke.getkeystroke(keyevent.vk_f, inputevent.ctrl_mask); menu2.add(itemcut); menu2.add(itemcopy); menu2.add(itempaste); menu2.add(itemfind); /设置“格式”项 menu3 = new jmenu(“格式“); item12 = new jmenuitem(“自动换行“); item13 = new jmenuitem(“字体“); menu3.add(item12); menu3.add(item13); /设置“查看”项 menu4 = new jmenu(“查看“); item14 = new jmenuitem(“状态栏“); menu4.add(item14); /设置“帮助”项 menu5 = new jmenu(“帮助“); item15 = new jmenuitem(“帮助主题“); menu5.add(item15); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); menubar.add(menu5); /设置菜单项 setjmenubar(menubar); /文字编辑区 jtextarea text = new jtextarea(); - 10 - text.setfont(new font(“宋体“, font.plain, 16); text.setlinewrap(true); jscrollpane panel = new jscrollpane(text, scrollpaneconstants. vertical_scrollbar_as_needed, scrollpaneconstants. horizontal_scrollbar_never); /插入组件 container contentpane = getcontentpane(); /取得 contentpane contentpane.add(panel, borderlayout.center); /状态栏 jlabel statebar = new jlabel(“未修改“); statebar.sethorizontalalignment(swingconstants.left); statebar.setborder( borderfactory.createetchedborder(); contentpane.add(statebar, borderlayout.south); popupmenu = menu2.getpopupmenu(); private void setupeventlistener() /单击窗口关闭按钮事件处理 addwindowlistener( new windowadapter() public void windowclosing(windowevent e) closefile(); ); /菜单“打开”项 itemopen.addactionlistener( new actionlistener() public void actionperformed(actionevent e) openfile(); ); /菜单“保存”项 itemsave.addactionlistener( new actionlistener() - 11 - public void actionperformed(actionevent e) savefile(); ); /菜单“另存为” itemsaveas.addactionlistener( new actionlistener() public void actionperformed(actionevent e) savefileas(); ); /菜单“关闭” itemclose.addactionlistener( new actionlistener() public void actionperformed(actionevent e) closefile(); ); /菜单“剪切” itemcut.addactionlistener( new actionlistener() public void actionperformed(actionevent e) cut(); ); /菜单“复制” itemcopy.addactionlistener( new actionlistener() public void actionperformed(actionevent e) copy(); ); /菜单“粘贴” itempaste.addactionlistener( new actionlistener() public void actionperformed(actionevent e) - 12 - paste(); ); /菜单“查找” itemfind.addactionlistener( new actionlistener() public void actionperformed(actionevent e) find(); ); /编辑区键盘事件 text.addkeylistener( new keyadapter() public void keytyped(keyevent e) processtext(); ); /编辑区鼠标事件 text.addmouselistener( new mouseadapter() public void mousereleased(mouseevent e) if (e.getbutton() = mouseevent.button3) popupmenu.show(menu2, e.getx(), e.ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论