1、 东 北 石 油 大 学 专 业 技 能 实 训 (二 ) 2017年 7月 28日 课 程 Java程序设计 题 目 制作一个文本编辑器 学 院 数学与统计 专业班级 信计 14-2 学生姓名 沈小伟 学生学号 141001140228 指导教师 李晓薇 1 东北石油大学专业技能实训任务书 课程 Java 程序设计 题目 制作一个文本编辑器 专业 信计 14-2 姓名 沈小伟 学号 141001140228 主要内容、基本要求、主要参考资料等 主要内容: 设计一个类似于 Windows 记事本的 Java 程序。可以打开、新建、保存一个文本文件;对选中的 文本进行各种编辑操作,在文本中能够插
2、入对象。简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。 主要要求: 1.独立完成,并提交一篇实训报告。 2.论文的主要内容包括: 所研究的 6-8 个实验题目所属分类的研究现状,常用技术,实验案例等等;要求有综合性,技术性 。必要的计算机程序。 3.文档格式:参照东北石油大学课程设计撰写规范和专业技能实训实践大纲。 4实训以答辩方式进行考核。 主要参考资料: 1 陈 国君 , 陈锡祯 . Java2 程序设计基础 M. 北京 : 清华大学出版社; 2006.8 2 袁海燕 . Java 实用程
3、序设计 100 例 M. 北京 : 人民邮电出版社; 2006.12:30-58 3 朱站立、沈伟 . Java 程序设计实用教程 M. 电子工业出版社 ;; 2008.11:228-251 4 印旻编、许伟 . Java2 从入门到精通 M.北京 :清华大学出版社; 2006.8:1-21 完成期限 2017 年 7 月 17 日 -2017 年 7 月 28 日 指导教师 李晓 威 专业负责人 仲光苹 2017 年 7 月 17 日 2 主要内容: 一、设计思路 (一)设计概念 要制作一个文本编辑器,首先得理清思路,要做一个什么样的文本编辑器,做成的编辑器要求要实现哪些功能,要实现这些功能
4、分别需要用到什么方法以及怎样组织编辑器的框架结构等等问题。现把我的设计思路简要介绍如下: 1、明确设计要求 首先要创建了一个窗体,标题为“设计的文本编辑器”,设计要求是要编辑文件和编辑这两 个菜单项,要求在文件菜单项上添加新建、打开、保存、退出四个下拉子菜单,要求当用户单击新建时就可以新建一个空白文档;当单击打开时可以从已有的目录下打开需要打开的文本文件,在原有文件中可以选择要打开的文件;当单击保存时可以出现保存的路径,选择自己要保存到的路径将文件保存到指定的文件夹中;单击退出菜单时退出文件的下拉菜单。在编辑菜单下的子菜单复制,可以进行对文本的复制。在文本区内要求当单击鼠标右键时可以弹出菜单,
5、要求有两个子菜单为复制和字体,通过单击字体菜单可以实现对字体改变。而且在窗体的右上方有三个按钮可以实现 最小化、最大化、和关闭。而且用户也可以根据自己的需要改变窗体的大小。 2、确定设计思路即设计步骤(必须想到要用到哪几个方面的程序、包、方法、以及基本的程序语言) ( 1)创建一个窗体,包括构造一个文本域为编辑器各种功能的实现提供一个伸展平台; ( 2)新建一个空的菜单条,然后添加菜单项(文件菜单和编辑菜单); ( 3)设计程序在菜单项下添加子菜单,文本菜单对应新建、打开、保存和退出,编辑菜单包括的子菜单为复制和粘贴; ( 4)添加右键快捷弹出式菜单,包括复制、字体等菜单项。 3、上两步都完成
6、以后,就进入程序的检测运 行阶段即所谓的编译运行,看是否符合设计要求,是否达到理想中的那种效果,在测验阶段,要一步一步完善自己的作品直至真正意义上的完成整个设计过程。 (二)流程图 3 二、 设计过程 1、 功能介绍: 通过记事本编辑器可以实现新建、打开、保存文本文件、以及退出;同时也有对字体 的改变、对字的颜色的改变以及复制、粘贴等功能,根据自己的意愿改变窗体,实行对其的最小化、最大化、关闭等等。 2、设计步骤: import javax.swing.*; 新建 打开 Open 保存 Save 退出 Exit 复制 Copy 字体大小 复制 Copy 粘贴 Paste 字体颜色 快捷菜单 编
7、辑 Edit 文件 File 空的 菜单条 文本域 TextArea 窗体 Frame 主方法 Main() 公共类 Bjq 粘贴 Paste 4 import javax.swing.event.*; import java.awt.*; import java.awt.print.*; import java.awt.datatransfer.*; import java.applet.*; import javax.swing.JColorChooser; import javax.swing.event.*; import java.awt.event.*; import java.i
8、o.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.colorchooser.*; 引用两个包: javax、 java、以及对应的方法 ( 1) 首先创建一个公共的类名为 Bjq 为文本编辑器创建一个窗体并设计标题为: 08通信 (2)班骆玉春设计的文本编辑器 Bjq;并创建编辑器的文本域 ,具体代码如下 ; /设计标题 JFrame f = new JFrame(); f.setTitle(“文本编辑器 Bjq“); /构造文本域 JTextArea aa = new JTextArea(“, 2
9、0, 50);/构造一个文本域 ( 2) 创建一个空的菜单条并添加两个菜单项(文件、编辑) JMenuBar cc = new JMenuBar();/创建一个空的菜单条 /创建 “文件 “和 “编辑 “这两个菜单项 JMenu file = new JMenu(“文件 “); JMenu edit = new JMenu(“编辑 “); ( 3) 先设计一个匿名内部类,为文件、编辑菜单添加新建和其他下拉子菜单 “ 新建 ” 子菜单:创建 OpenL 类实现了 ActionLister 并实现其读取文件的功能以匿名内部类的形式创建菜单监听器这些代码的作用是实现对新建、保存、打开、退出、复制进行
10、监听, / 实现文本文件的打开功能 -即文件菜单 下的子菜单 “打开 “ class openL implements ActionListener 5 public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser(); int returnVal = fc.showDialog(Bjq.this, “打开 “); “ 退出 ” 子菜单: /实现文本文件的退出功能 -即文件菜单下的子菜单 “退出 “ class exitL implements ActionListener public void a
11、ctionPerformed(ActionEvent e) System.exit(0); /新建、保存、复制、粘贴与之相类似就不做说明 ( 4) 右键快捷菜单的字体子菜单的创建: 字体包括字体的大小和字体的颜色等等 / 设计字体大小 class fontsize implements ActionListener public void actionPerformed(ActionEvent e) int n; String no; no=JOptionPane.showInputDialog(“请输入你想要的字体大小: “); n=Integer.parseInt(no); Font ft
12、; ft=new Font(“,Font.BOLD,n); aa.setFont(ft); 通过用户输入所需的字号的大小来调节字体大小以满足不同需要 , / 设计字体颜色 class fontcolor implements ActionListener public void actionPerformed(ActionEvent e) Color a=new Color(0,192,191); JColorChooser c=new JColorChooser(); a=c.showDialog(Bjq.this, “颜色选择框 “,a); aa.setForeground(a); 6 (
13、 5) 为鼠标创建监听器。用于用鼠标点 击右键时出现快捷菜单 : 复制、粘贴、字体大小、字体颜色。 popup = new JPopupMenu(); JMenuItem copy = new JMenuItem(“复制 “); JMenuItem word = new JMenuItem(“字体 “); public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) public void mouseReleased(Mous
14、eEvent e) 当单击右键时可以弹出复制、粘贴和字体菜单,实现功能,实现鼠标的控制来完成弹出菜单的操作。 ( 6)为窗体添加监听器 当用户按关闭按钮时就可以将窗口关闭,实现了对窗体的控制。 / 关闭窗口 protected static final class appCloseL extends WindowAdapter public void windowClosing(WindowEvent e) System.exit(0); f.setSize(800, 500); f.setVisible(true); (这两个代码是设计窗体的的大小和窗口的可见性。) ( 7)设计 main
15、方法:为整个程序的开始提供了入口, public static void main(String args) JFrame f = new JFrame(); Bjq applet = new Bjq(); f.setTitle(“一生痴狂 一世繁华 BY 梦落痴狂 “); f.setBackground(Color.red); f.getContentPane().add(applet, BorderLayout.CENTER); f.addWindowListener(new appCloseL(); f.setSize(800, 500); f.setVisible(true); f.p
16、ack(); 为静态的主函数。 7 三 、设计体会 Java 语言是很神奇的一门课程,我喜欢编程。喜欢最后编完的一刹那的成功, 尤其是进行课程设计 ,我更加深刻体会到了 Java 的诡异,无法掌控,最后的程序虽 没有实现所有功能,但也可以运行了,这次 课程设计 中我独立完成了程序的绝大多数部分,很开心。不过有太多不会,总是蒙一些东西。有些一知半解的东西还是不 了解, 有些东西是会用了,但对其工作原理却很模糊。这些都是以后在学 Java 用 Java 的路上需 要解决的, Java 的魅力真的让人着迷。 在课程设计的过程我遇到了好多的麻烦,有些是自己的马虎,有些也是因为程序太长有时会出一些小的问
17、题,都是自己不应该发生的。但有些是不可以避免的啊 ,所以说我们在进行Java 课程设计的时候要认真仔细不要只图快,要认真每一个环节的输入,否则会给我们 带来许多不必要的麻烦,因此要想做好一个好的完整的 Java 程序一定要有足够的耐心,只有这样你才会有好的结果,才会感觉到成功的喜悦,理解到认真和粗心的后果。 总之,这次 设计 还是教了我很多, 以及一些在平时生活中不可能遇见的 一些问题,使我领略到一些人生道理,这些是在现实生活中难以解决的和学到的,相信 Java 会让我觉得更加充实和快乐! 附:源程序代码 /Bjq.java import java.awt.*; import java.awt
18、.print.*; import java.awt.datatransfer.*; import java.applet.*; import javax.swing.JColorChooser; import javax.swing.event.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.colorchooser.*; public class Bjq extends JPanel private JPopupM
19、enu popupMenu = new JPopupMenu(); JTextArea aa = new JTextArea(“, 20, 50);/构造一个文本域 JScrollPane bb = new JScrollPane(aa); JMenuBar cc = new JMenuBar();/创建一个空的菜单条 8 JMenu file = new JMenu(“文件 “); /创建 “文件 “和 “编辑 “这两个菜单项 JMenu edit = new JMenu(“编辑 “); / 菜单内容 JMenuItem dd; / 实例化剪切板 Clipboard clipbd = get
20、Toolkit().getSystemClipboard(); JMenu fileMenu; JPopupMenu jPopupMenuOne; JMenuItem openFile,closeFile,exit; JRadioButtonMenuItem copyFile,pasteFile; ButtonGroup buttonGroupOne; public Bjq() /新建一个内部类 class newL implements ActionListener public void actionPerformed(ActionEvent e) aa.setDocument(new P
21、lainDocument(); / 实现文本文件的打开功能 -即文件菜单下的子菜单 “打开 “ class openL implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser(); int returnVal = fc.showDialog(Bjq.this, “打开 “); if (returnVal = JFileChooser.APPROVE_OPTION) String file = fc.getSelectedFile().getPa
22、th(); if (file = null) return; 9 / 读取文件 try Reader in = new FileReader(file); char buff = new char4096; int nch; while (nch = in.read(buff, 0, buff.length) != -1) aa.setDocument(new PlainDocument(); aa.append(new String(buff, 0, nch); catch (IOException io) System.err.println(“IOException: “ + io.ge
23、tMessage(); else return; / 实现文本文件的保存功能 -即文件菜单下的子菜单 “保存 “ class saveL implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser(); int returnVal = fc.showSaveDialog(Bjq.this); if (returnVal = JFileChooser.APPROVE_OPTION) String savefile = fc.getSelectedFile().getPath(); if (savefile = null) return; else String docToSave = aa.getText(); if (docToSave != null) FileOutputStream fstrm = null; BufferedOutputStream ostrm = null; try fstrm = new FileOutputStream(savefile);
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。