




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学实践教学*江西中医学院江西中医学院2010 年秋季学期 java 语言语言课程设计课程设计题题 目:目: 记事本记事本 专业班级:专业班级: 0909 计算机班计算机班 姓姓 名:名: 指导教师:指导教师: 成成 绩:绩: - 1 -目 录摘 要.2序 言.3正 文.41.需求分析 .42.功能设计.43.设计思路.44.模块说明图.45.程序运行界面.66.程序相关说明.8源程序.8设计总结.12参考文献.13 - 2 -摘要该报告中的程序是使用 java 程序编写,使用的是 swing 设计的,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能
2、,该程序还主要用到了 java swing 和容器(container) 、组件(component) 、版面管理器(layout manager) 、事件监听器(event listener)等。关键字:记事本程序;java 语言;序言java 的前身是 oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的 internet 上。1995 年,java语言的名字从 oak 编程了 java。1997 年 j2se1.1 发布。1998 年 j2se1.2 发布,标志 java2 的诞生。十多年来,java 编程语言及平台成功地运用在网络计算及移动等各个领
3、域。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 等。其中 jav
4、a development kit 简称 jdk 是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,运用了许多用于 java 开发的工具包,比如java.awt,java.swing,java.io 等包,大大简化了开发的复杂度,提高了效率。正文1. 需求分析现在网络上各种文档编辑器数不胜数,有 emeditor ,uestudio ,gridinsoft notepad ,notepad+,win32pad ,skimedit,unired, xint 。功能也是应有尽有,有能
5、改变字体- 3 -的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。简单的记事本程序。2. 功能设计 本程序构建的记事本工具主要具备以下几种功能:(1)菜单中有“文件” , “编辑” ,二个主菜单。(2)“文件”有“新建” “打开” “保存” “退出”四个子菜单,分别用于新建文件,打开文件,保存文件,退出记事本。 (3)“编辑”菜单有“复制” “剪切” “查找” “粘贴”
6、等子菜单。3设计思路 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了jscrollpane,jmenu,jfilechooser 等。jmenu 用来制作菜单,菜单包括“文件” “编辑” “关于” 。jtextpane 主要用来输入文本。4. 模块说明图 图 1在图 1 中,首先创建一个名为 jishiben 的类并继承 jframe 类作为最底层的容器。jishiben implementsextendsactionlistenerjframejishiben 的构造方法- 4 - 图 2在图 2 中,构造一个 jishiben 类时要做三件事情,分别是将窗口中的组件的设置,与事
7、件的处理分别交给 setupuicomponent()与setupeventlistener()两个方法来处理。5程序运行界面图 3 记事本运行初始化界面初始化容器组件添加事件监听菜单栏文字输入区文件编辑格式新建打开保存退出剪切复制粘贴查找自动换行初始化初始化字体- 5 - 图 4 记事本菜单栏中的“文件”菜单打开 图 5 记事本菜单栏中的“编辑”菜单打开6.程序相关说明- 6 -整个记事本分为两块:菜单栏和内容输入区。本程序中首先定义一个jishben 类继承 jframe 作为最底层容器。 (1)textarea 为程序文本输入区。 (2)menu 为菜单栏。 (3)aboutdialog
8、 为关于对话框。 (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;
9、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.jlab
10、el;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.jpopupme
11、nu;- 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=ne
12、w 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()
13、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,
14、 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.getkey
15、stroke(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
16、.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.getke
17、ystroke(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);
18、 /设置“查找”项 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(字体); m
19、enu3.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); /设
20、置菜单项 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
21、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
22、= menu2.getpopupmenu(); private void setupeventlistener() /单击窗口关闭按钮事件处理 addwindowlistener( new windowadapter() public void windowclosing(windowevent e) closefile(); ); /菜单“打开”项 itemopen.addactionlistener( new actionlistener() public void actionperformed(actionevent e) openfile(); ); /菜单“保存”项 itemsav
23、e.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 act
24、ionperformed(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(
25、 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.gety()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市各区高三二模语文试题汇编《古诗鉴赏》含答案
- 《网络布局》课件
- 小儿透析失衡综合征的临床护理
- 2025商场租赁合同范本模板
- 2025教科书供货合同范本
- 社工模拟考试卷子及答案
- 山西省一模初中化学试卷及答案
- 三中中学初一试卷及答案
- 2025便捷高效的借款合同
- 老年人社会参与与互助合作考核试卷
- 手术室护理质量控制讲解
- 大学物业服务月考核评价评分表
- GB 36893-2024空气净化器能效限定值及能效等级
- 19G522-1钢筋桁架混凝土楼板图集
- RPA财务机器人开发与应用 课件 6.1 RPA网银付款机器人
- 软件开发中介服务协议范本
- 云南省昆明市2025届高三年级第二次联考+物理试卷
- 企业宣传与品牌形象设计手册
- 别墅设备维护方案
- DL∕T 1917-2018 电力用户业扩报装技术规范
- 山东省临沂市莒南县2023-2024学年七年级下学期期末数学试题
评论
0/150
提交评论