JAVA语言课程设计-记事本.doc

上传人:来看看 文档编号:3258250 上传时间:2019-08-06 格式:DOC 页数:15 大小:107.54KB
返回 下载 相关 举报
JAVA语言课程设计-记事本.doc_第1页
第1页 / 共15页
JAVA语言课程设计-记事本.doc_第2页
第2页 / 共15页
JAVA语言课程设计-记事本.doc_第3页
第3页 / 共15页
JAVA语言课程设计-记事本.doc_第4页
第4页 / 共15页
JAVA语言课程设计-记事本.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《JAVA语言课程设计-记事本.doc》由会员分享,可在线阅读,更多相关《JAVA语言课程设计-记事本.doc(15页珍藏版)》请在三一文库上搜索。

1、* 实践教学实践教学 * 江西中医学院江西中医学院 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 设计的,能够进行 输入文字操作,并具有新建文件,打开文件,

2、保存文件,退出,复制,粘贴, 剪切等功能,该程序还主要用到了 Java swing 和容器(Container) 、组件 (Component) 、版面管理器(Layout Manager) 、事件监听器(Event Listener)等。 关键字:记事本程序;Java 语言; 序言 Java 的前身是 Oak,它一开始只是被应用于消费性电子产品中。后来它 的开发者们发现它还可以被用于更大范围的 Internet 上。1995 年,Java 语言的名字从 Oak 编程了 Java。1997 年 J2SE1.1 发布。1998 年 J2SE1.2 发 布,标志 Java2 的诞生。十多年来,Ja

3、va 编程语言及平台成功地运用在网 络计算及移动等各个领域。Java 的体系结构由 Java 语言、Java class、Java API、Java 虚拟机组成。它具有简单、面向对象、健壮、安全、 结构中立、可移植和高效能等众多优点。Java 支持多线程编程,Java 运行 时系统在多线程同步方面具有成熟的解决方案。Java 的平台标准有 Java ME,Java SE 和 Java EE。Java 发展到今天,它的卓越成就及在业界的地位 毋庸置疑。目前在众多的支持 Java 的开发工具中主要的 7 有 Java Development Kit,NetBeans,Jcreator,JBuild

4、er,JDeveloper 和 Eclipse 等。其中 Java Development Kit 简称 JDK 是大多开发工具的基础。 以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己 的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,运用了许多用于 java 开发的工具包,比如 java.awt,java.swing,java.io 等包,大大简化了开发的复杂度,提高了效 率。 正文 1. 需求分析 现在网络上各种文档编辑器数不胜数,有 EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad+,win3

5、2pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体 - 3 - 的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵 或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太 繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个 文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照 这样一种使用需要设计了一个简单的记事本程序。简单的记事本程序。 2. 功能设计 本程序构建的记事本工具主要具备以下几种功能: (1)菜单中有“文件” , “编辑” ,二个主菜单。 (2)“文件”有“新建” “打开” “保存” “退出”四个子菜单, 分别用于新

6、建文件,打开文件,保存文件,退出记事本。 (3)“编辑”菜单有“复制” “剪切” “查找” “粘贴”等子菜单。 3设计思路 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了 JScrollPane,JMenu,JFileChooser 等。JMenu 用来制作菜单,菜单 包括“文件” “编辑” “关于” 。JTextPane 主要用来输入文本。 4. 模块说明图 图 1 在图 1 中,首先创建一个名为 jishiben 的类并继承 JFrame 类作为最 底层的容器。 Jishiben implements extends ActionListener JFrame Jishiben

7、 的 构造方法 - 4 - 图 2 在图 2 中,构造一个 jishiben 类时要做三件事情,分别是将窗口中 的组件的设置,与事件的处理分别交给 setUpUIComponent()与 setUpEventListener()两个方法来处理。 5程序运行界面 图 3 记事本运行初始化界面 初始化容器 组件 添加事件监 听 菜单栏文字输入区 文件编辑格式 新 建 打 开 保 存 退 出 剪 切 复 制 粘 贴 查 找 自动 换行 初始化初始化 字体 - 5 - 图 4 记事本菜单栏中的“文件”菜单打开 图 5 记事本菜单栏中的“编辑”菜单打开 6.程序相关说明 - 6 - 整个记事本分为两块:

8、菜单栏和内容输入区。本程序中首先定义一个 jishben 类继承 JFrame 作为最底层容器。 (1)TextArea 为程序文本输入区。 (2)Menu 为菜单栏。 (3)AboutDialog 为关于对话框。 (4)要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件 监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中实 现了 ActionListener 接口,用来监听并处理所有菜单项和内容输入区为 事件源的事件。 源程序 import java.awt.BorderLayout; import java.awt.Container; import java.aw

9、t.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 ja

10、va.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; impor

11、t 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 JM

12、enuItem 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; p

13、rivate 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 m

14、enu1, 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(K

15、eyStroke.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_M

16、ASK); /设置另存为项 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.addSepa

17、rator(); /分隔线 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, In

18、putEvent.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);

19、 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 =

20、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.setLi

21、neWrap(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(

22、“未修改“); stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder( BorderFactory.createEtchedBorder(); contentPane.add(stateBar, BorderLayout.SOUTH); popUpMenu = menu2.getPopupMenu(); private void setUpEventListener() /单击窗口关闭按钮事件处理 addWindowListener( new WindowAdapter() public void wi

23、ndowClosing(WindowEvent e) closeFile(); ); /菜单“打开”项 itemOpen.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) openFile(); ); /菜单“保存”项 itemSave.addActionListener( new ActionListener() - 11 - public void actionPerformed(ActionEvent e) saveFile(); ); /菜单“另存为” itemSaveA

24、s.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 actionPerform

25、ed(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 A

26、ctionListener() 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) p

27、opUpMenu.show(menu2, e.getX(), e.getY(); public void mouseClicked(MouseEvent e) if (e.getButton() = MouseEvent.BUTTON1) popUpMenu.setVisible(false); ); private void openFile() private void saveFile() - 13 - private void saveFileas() private void closeFile() private void cut() private void copy() pri

28、vate void paste() private void find() private void processtext() public static void main(String args) new jishiben4(); 设计总结 经过了为期差不多一个多月的时间,基本上完成我们的 Java 课程设计简 单的记事本程序,也基本上实现了我们在需求分析时所预期的功能。通过这次 的课程设计,使将我们从书本上学习到的理论知识用到了实践上,从而进一步 巩固和丰富了我们所学过的知识,让我们更深层次地认识到 Java 及其强大的功 能。同时,做这门课程设计也进一步加强了我们的动手能力。为了完成

29、好这次 课程设计,我们提前做了较多的准备,一边上网查找相关资料,另一方面查阅 相关书籍。在这过程中也无形中锻炼了我们思维分析、遇到问题及想方设法通 过各种途径解决问题的能力。 不过总的来说真的,在这个过程中也相当于锻炼了我们的处理事情的问题, 当有问题的时候 我们应该要怎样去处理,而且,发现很明显的一点就是在编辑 程序的过程中,真的是需要有耐性和毅力,对于出现的问题不能够太过于求成 了,这样的话最后的结果只能是什么也做不成,还会给自己带来无端的好多的 烦恼。 参考文献 1 庚祥义 张跃平 编著Java 2 实用教程(第三版) 清华大学出版社 - 14 - 2 良葛格 编著Java 学习笔记清华大学出版社

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1