制作一个文本编辑器java课程设计报告

合集下载

java课程设计报告

java课程设计报告

Java课程设计报告专业:计算机科学与技术班级:0820542 学号:姓名:用Java 设计文本编辑器MyTxt内容提要:在本文构造实现了一个文本编辑器MyTxt,主要内容包括:MyTxt的功能需求分析;MyTxt的基本设计思路和类的划分;MyTxtr 的具体实现。

关键字:Java、文本编辑器MyTxt引言:设计实现一个Java 应用程序的过程如下:(1)功能需求分析。

(2)设计和类划分。

(3)代码编写实现。

本文就按照这个步骤来实现文本编辑器MyTxt 的制作。

正文:1、MyTxt 功能需求分析作为文本编辑器,至少应该具备以下几种功能:(1)所见即所得的文本输入。

(2)方便的选中文本、复制文本、删除文本、插入文本的功能。

(3)方便的查找指定文字、替换文字的功能。

(4)打印功能。

(5)简单的排版功能,如设置字体、字号等。

另外,还要求MyTxt 实现一个称为“经典视图Classic View”的功能,用以使用经典仿Terminal形式的界面。

2、MyTxt 基本设计思路和类划分基于第1 节中提出对于MyTxt 功能需求的分析,对这个应用程序设计划分类如下:(1)MyTxt:这个类作为主类,实现主要功能,并实现图形用户界面。

(2)MenuColor:这个类用来实现文字颜色的编辑功能。

(3)MenuFont:这个类用来实现文字字体、字号的编辑功能。

(4)PrintableTextArea:这个类将实现TextArea 的功能,并使得文字可以打印输出。

3、MyTxt 的具体实现3.1、MyTxt 类的设计MyTxt 类实现整体功能,包括窗体的初始化、各种用户事件监听和响应(编辑、保存、打开等等)。

1. 父类和主要接口设计MyTxt 整个窗体特性继承自JFrame 类。

为了对用户命令做出响应(如保存文件),MyTxt 类必须能够监听到用户的命令,因此设计MyTxt 类实现ActionListener 接口。

java课程设计报告记事本

java课程设计报告记事本

Java课程设计报告:记事本1. 引言记事本是一款常见的文本编辑工具,广泛应用于日常工作和学习中。

本文将介绍一种基于Java语言开发的简易记事本设计方案。

2. 设计思路2.1 界面设计记事本的界面应简洁明了,方便用户进行文本编辑和操作。

可以考虑使用Swing或JavaFX等图形库来创建用户界面。

2.1.1 主窗体记事本的主窗体应包含一个菜单栏和一个文本编辑区域。

菜单栏包含文件、编辑、格式等功能项,可以使用Java提供的菜单组件来实现。

2.1.2 文件操作在菜单栏的文件功能项中,应包含新建、打开、保存、另存为等操作。

这些功能可以通过文件选择对话框来实现。

2.1.3 文本编辑文本编辑区域应支持基本的编辑功能,如复制、粘贴、剪切和撤销等操作。

可以使用Java提供的文本框组件来实现。

2.2 功能设计记事本的功能设计应满足用户的基本需求,如文本编辑、保存和打开文件等。

2.2.1 文本编辑功能用户可以在文本编辑区域输入和编辑文本内容。

可以提供字体、颜色和对齐等格式设置功能。

2.2.2 文件操作功能用户可以通过菜单栏的文件功能项进行文件的新建、打开、保存和另存为等操作。

可以使用Java的文件IO功能来实现。

2.3 实现步骤2.3.1 创建主窗体首先,需要创建一个主窗体,并设置合适的大小和布局。

可以使用Swing或JavaFX提供的窗体组件来实现。

2.3.2 添加菜单栏在主窗体中添加一个菜单栏,并设置合适的菜单和菜单项。

可以使用Java提供的菜单和菜单项组件来实现。

2.3.3 添加文件操作功能在菜单栏的文件功能项中添加新建、打开、保存和另存为等功能,并实现相应的事件处理。

可以使用Java提供的文件选择对话框和文件IO功能来实现。

2.3.4 添加文本编辑功能在主窗体中添加一个文本编辑区域,并提供复制、粘贴、剪切和撤销等编辑功能。

可以使用Java提供的文本框组件和编辑功能来实现。

3. 实现代码以下是一个简单记事本的Java代码示例:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class Notepad extends JFrame {private JTextArea textArea;private JFileChooser fileChooser;public Notepad() {setTitle("记事本");setSize(600, 400);setDefaultCloseOperation(EXIT_ON_CLOSE);createMenuBar();textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);add(scrollPane, BorderLayout.CENTER);fileChooser = new JFileChooser();setVisible(true);}private void createMenuBar() {JMenuBar menuBar = new JMenuBar();JMenu fileMenu = new JMenu("文件");JMenuItem newMenuItem = new JMenuItem("新建");JMenuItem openMenuItem = new JMenuItem("打开");JMenuItem saveMenuItem = new JMenuItem("保存");JMenuItem saveAsMenuItem = new JMenuItem("另存为");newMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {textArea.setText("");}});openMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showOpenDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedReader reader = new BufferedReader(new FileReader(file));String line;StringBuilder content = new StringBuilder();while ((line = reader.readLine()) != null) { content.append(line).append("\n");}reader.close();textArea.setText(content.toString());} catch (IOException ex) {ex.printStackTrace();}}}});saveMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});saveAsMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);menuBar.add(fileMenu);setJMenuBar(menuBar);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new Notepad();}});}}4. 总结本文介绍了一种基于Java语言开发的简易记事本设计方案。

java课程设计文本编辑器

java课程设计文本编辑器

湖南人文科技学院计算机系课程设计报告课程名称: Java程序设计课程代码: 408026题目: 文本编辑器年级/专业/班: 07级计算机科学与技术1班学生姓名: 肖毅、陈耀学号: 07408131、07408145指导老师: 郭广军开题时间: 2008年12月22日完成时间: 2009年01月03日2009年1月5日前言《Java课程设计》是计算机科学与技术专业学生的专业实践必修课程,是学习《Java程序设计》课程非常重要的综合性实践教学环节。

课程设计是检验学生是否掌握相关专业课程知识的重要手段,同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生实践应用能力和自学能力的培养。

课程设计任务书及成绩评定课程名称: Java程序设计完成者: 肖毅、陈耀1 、设计的目的与要求(1)设计的目的:《Java课程设计》是计算机科学与技术专业学生的专业实践必修课程,是学习《Java 程序设计》课程非常重要的综合性实践教学环节。

课程设计是检验学生是否掌握相关专业课程知识的重要手段,同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生实践应用能力和自学能力的培养。

通过设计文本编辑器并实现其功能来熟练掌握JAVA语言基础,,初步掌握软件开发中系统分析、系统设计、系统实现和系统测试等阶段的基本方法与技术,培养学生的创新意识,提高实践应用能力,为培养应用型人才服务。

(2)做文本编辑器的要求:<1> 菜单要求:要求有新建、保存、另存为、退出、拷贝、剪切、粘贴、帮助等功能。

<2>要求其操作简单、界面清晰、灵活、实用、方便。

<3>要求程序须经调试,并添加异常处理和代码注释,同时在功能实现后,要将代码进行优化。

<4>最好能响应键盘和鼠标事件,同时可添加快捷键。

JAVA程序设计综合实验报告(文本编辑器)

JAVA程序设计综合实验报告(文本编辑器)
JSplitPane splitpane;
JDesktopPane desk;
FirstWindow(String s){
setTitle(s);
setSize(800,600);
setLocation(120,120);
setVisible(true);
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
MyInternalFrame internalFrame=(MyInternalFrame)desk.getSelectedFrame();
JTextArea text=internalFrame.getJTextArea();
String str;
op1.setVisible(true);
try{
item1_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK ));
item1_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK ));
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
//剪切
item2_Cut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
addInternalFrameListener(new InternalFrameAdapter(){

java文本编辑器实验报告

java文本编辑器实验报告

Java考核课程名称Java程序设计题目名称文本编辑器的设计与实现学生学院计算机学院专业班级计算机17(2)班学号**********学生姓名李泽豪指导教师赵锐2018 年12 月11 日一、课程题目编程实现一个文本编辑器使其具有新建、打开、保存,编辑(查找、替换、大小写转换等)、统计(字数、行数、字符数等)、格式(字体设置、字体大小、字体颜色、背景颜色等)等功能。

要求:基于JFrame窗体设计、使用菜单进行功能选择。

提示:字体颜色,背景颜色的设置,可使用javax.swing包中的JColorChooser类的静态方法showDialog()调用标准颜色对话框来完成;文件操作可通过javax.swing包中JColorChooser类中的showSaveDialog()、showOpenDialog()方法调用标准的的文件对话框来完成。

二、题目分析与设计2.1开发环境使用Eclipse开发软件2.2需求分析简单的文本编辑器提供给用户基本纯文本的文字编辑功能,能够读取计算机本地磁盘中的文本内容,将用户文本导入到磁盘中之中,以及实现基本的字体设置(字体,字号,字体颜色)简单的编辑字体的功能,以及统计(字数,行数,字符数),增强视觉体验的背景颜色功能等,简单而实用。

而网络上的各种编辑器,有的功能不足(如自带的记事本),而有些编辑器功能太繁杂,仅以日常应用方面来说,一个文本编辑器只需要简单的功能就够了。

2.3功能构架本程序要构建的文本编辑器按照题目要求,分为四个方面:(1)“文件”菜单:包括“新建”并提示是否保存已编辑内容,“打开”计算机本地磁盘的文本文件,主动“保存”自己已经编辑好的内容到电脑的磁盘或“另存为”新的文件之中,以及“退出”并提示是否保存已编辑的内容。

(2)“编辑”菜单:包括对已编辑文本的一个“查找与替换”功能,对已编辑英文文本的一个“大小写转换”功能。

(3)“格式”菜单:实现对文本的“字体”设置,“字体大小”以及“字体颜色”,还有能优化视觉体验的“背景颜色”的改变。

java实训报告文本编辑器的设计与实现

java实训报告文本编辑器的设计与实现
java实训报告文本编辑器的设计与实现 西安心海建站()
《Java实训》设计报告
文本编辑器的设计与实现
专业: 班级: 09-23 学号: 姓名:
软件技术
090123036 薛岳
石家庄科技信息职业学院 信息工程系
2011年10月15日
项目名称 项目简介
项目目的
replace();// 执行替换函数 } if (e.getActionCommand() == "帮助") {//帮助消息窗体
JOptionPane.showMessageDialog(this,"记事本程序!", "帮助", JOptionPane.PLAIN_MESSAGE);
} } } (1)成员变量 menustr是String型数组,是菜单栏的各个字符串。 menuitem1是JMenuItem数组,将为数组中的每个菜单项添加注册有ActionEvent事件监听器 (2)方法 main(String args[])方法是文本编辑器程序运行的入口方法。 addmyMenu() 菜单函数,生成菜单。 (3)效果图 窗口效果如图2所示。
6/8
java实训报告文本编辑器的设计与实现 西安心海建站()
三、项目总结 实训的时间很短,只有短短一周的时间,但是需要完成的工作很多,一个学期的java学习我们所 学的并不是很多,本次实训我选取的是文本编辑器的设计。虽然以前在c#中做过实训,但是c#是 在图形用户界面中进行窗体的设计,是对窗体和Windows控件的操作,而在java中需要用代码来 实现窗体的实例化和调用。是要通过代码来实例化和创建窗体,并通过代码来调用,引入了java 中的多个类来实现各个窗体和控件,并发现了自己的不足之处。 在窗体中需要加入文本编辑区来存储文本,这就需要创建文本对象并对其进行实例化,并且在编 辑菜单中还需要多个方法来实现对文本的操作和处理,比如剪切和复制,用到本身的函数来操作 。对于所有的菜单和菜单项以及控件所做才操作处理都需要注册其相应的监听事件来完成,而在 文件菜单中,打开的操作用到了文件的输入流,保存则用到了文本的输出流。而在打开事件中所 以遇到的错误在查阅了很多资料后在得以解决,并在此过程中学到了很多老师在课程中没有讲到 的知识,是自己受益匪浅,在文件菜单中的保存中,需要用if语句进行相应的判断,来执行不同 的代码实现,并与相应的异常处理语句相结合来完善程序,是代码哥哥具有健壮性和灵活性,减 少程序运行时错误出现。 在查找和替换中,对于查找函数则需要判断许多不同的情况来进行不同,尤其是要如何实现查找 和替换的功能是最关键的,需要使用什么样的方法来达到这一目的是最困难的,通过网络和同学 的讨论发现很多同学也遇到了这个问题,而采用现成的代码是行不通的,必须自己在实现中进行 一次次的修改,不断调整代码的运行方式来实现其功能。 四、心得体会 由于时间仓促,还有许多其他的功能没有,并在已实现的功能中也有不足的地方,还需要进一步 对其进行修改。再次过程中不断加深对java程序设计的认识和理解,丰富自己的知识,了解自己 的不足,加强自己的理解能力和学习能力,提高自己独立解决问题的能力。Java是一门全新的计 算机语言,需要自己对其全新的理解,而java的很多功能都需要在学习中去发现和理解,应用到 不同的设计中去,并结合网络这个以有利工具方便自己学习java的语言和强大的编码能力,以及 在以后的设计中把程序不断完善。

JAVA课程设计 文本编辑器

JAVA课程设计 文本编辑器

河海大学计算机与信息学院(常州)java课程设计课程设计题目:文本编辑器学号: 0962810202姓名:指导老师:目录一、问题描述———————————————————2二、功能模块设计—————————————————2三、主要流程设计—————————————————3四、用户界面设计及部分运行结果测试————————4五、主要类设计——————————————————6六、系统创新点——————————————————8七、参考文献———————————————————8八、心得体会———————————————————8一、问题描述:文本编辑器:功能要求:文档操作:主要是在txt文档中输入文字信息。

.文件操作:包括文件的新建、打开、关闭、保存、另存为及退出程序等功能。

文件编辑:包括撤销上一步操作、剪切、复制、粘贴、删除、全选、查找、查找下一个、替换等功能。

插入功能:主要是为了方便使用者插入日期、时间等信息(可选做功能)字体设置:可以通过[字体]菜单对编辑器的显示字体进行设定,字体设定应能设置字体的颜色。

字体的不需要保存到文件,即字体设置只在当前编辑时有效,退出程序并再次运行时不需要与上次的字体相同(可选择功能)二、功能模块设计该文本编辑器主要实现的功能有:1)文本输入;2)文件菜单:新建、打开、关闭、保存、另存为、退出;3)编辑菜单:撤销、剪切、复制、粘贴、删除、全选、插入时间、查找、查找下一个、替换;4)格式菜单:自动换行三、主要流程设计1)简单框架的建立第一步:建立框架——利用所建MainForm主类直接继承JFrame,这个框架类包含了一个initComponents() 方法,用于初始化各个组件,同时在initComponents() 方法里利用setTitle方法为框架添加了标题——“TXT”。

第二步:添加文本域——用TextArea建立一个文本域对象,并添加进框架里2)添加菜单该文本编辑器菜单组件如下:“文件”菜单:“编辑”菜单:“格式”菜单:图3-2用JMenuBar定义一个菜单栏、JMenu定义“文件”,“编辑”菜单、JMenuItem定义“新建”,“打开”,“复制”,“粘贴”等菜单项,更改变量名,并在initComponents( )方法里创建这些选项对象。

制作一个文本编辑器-java课程设计报告

制作一个文本编辑器-java课程设计报告

制作一个文本编辑器-java课程设计报告封面《Java语言程序设计》课程设计报告设计题目:制作一个文本编辑器分院:电信分院班级:姓名:学号:指导教师:黄建华实验地点:三教机六课设时间:2009-12-20——2009-12-25二OO九年十二月二十五日《Java语言程序设计课程设计》目录一、设计思路…………………………………………… (2)二、设计过程…………………………………………… (3)三、测试结果…………………………………………… (12)四、心得体会…………………………………………… (13)五、程序代码…………………………………………… (14)一、设计思路(一)设计概念要制作一个文本编辑器,首先得理清思路,要做一个什么样的文本编辑器,做成的编辑器要求要实现哪些功能,要实现这些功能分别需要用到什么方法以及怎样组织编辑器的框架结构等等问题。

现把我的设计思路简要介绍如下:1、明确设计要求首先要创建了一个窗体,标题为“×××设计的文本编辑器”,设计要求是要编辑文件和编辑这两个菜单项,要求在文件菜单项上添加新建、打开、保存、退出四个下拉子菜单,要求当用户单击新建时就可以新建一个空白文档;当单击打开时可以从已有的目录下打开需要打开的文本文件,在原有文件中可以选择要打开的文件;当单击保存时可以出现保存的路径,选择自己要保存到的路径将文件保存到指定的文件夹中;单击退出菜单时退出文件的下拉菜单。

在编辑菜单下的子菜单复制,可以进行对文本的复制。

在文本区内要求当单击鼠标右键时可以弹出菜单,要求有两个子菜单为复制和字体,通过单击字体菜单可以实现对字体改变。

而且在窗体的右上方有三个按钮可以实现最小化、最大化、和关闭。

而且用户也可以根据自己的需要改变窗体的大小。

2、确定设计思路即设计步骤(必须想到要用到哪几个方面的程序、包、方法、以及基本的程序语言)(1)创建一个窗体,包括构造一个文本域为编辑器各种功能的实现提供一个伸展平台;(2)新建一个空的菜单条,然后添加菜单项(文件菜单和编辑菜单);(3)设计程序在菜单项下添加子菜单,文本菜单对应新建、打开、保存和退出,编辑菜单包括的子菜单为复制和粘贴;(4)添加右键快捷弹出式菜单,包括复制、字体等菜单项。

java课程设计报告-java课程设计

java课程设计报告-java课程设计

Java 课程设计报告题目:文本编辑器班级:学号:姓名:成绩:日期:年月日目录一、综合设计的目的与要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3二、综合设计正文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯31. 系统分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯31.1系统开发背景、开发范围、建设目标与必要性开发⋯⋯⋯⋯⋯⋯⋯⋯31.2需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.系统设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.1功能设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.2系统运行环境与开发工具⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯43 . 系统实施⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4 3.1 源程序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯43.2 .系统测试及部分截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12三、综合设计总结或结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13四、参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13《文本编辑器》一、综合设计的目的与要求要求在学生能够较熟练使用java 程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统的练习。

二、综合设计正文1系统分析1.1系统开发背景、开发范围、建设目标与必要性随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。

1.2需求分析程序设计主要分为两大部分:简单 GUI 设计和程序功能设计。

通过 GUI 设计实现图形用户界面,提供图形菜单,方便用户操作。

使用Java 语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出的程序。

文本编辑器 java课程设计实验报告 完整 预览显示不全 含全部代码

文本编辑器 java课程设计实验报告 完整 预览显示不全 含全部代码

淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 选题名称: 姓 名: 面向对象课程设计文本编辑器的设计与实现学号:专业班级: 系 (院) : 设计时间: 设计地点: 计算机工程学院 2010.6.21~2010.7.2 软件实验室、教室指导教师评语:成绩:签名:年 月 日面向对象课程设计报告第2页,共24页1.设计要求设计一个类似于 Windows 记事本(Notepad)的 Java 程序。

可以打开、新建、保存一个文本文件;对 选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、 查找、替换等) ;在文本中能够插入对象。

2.总体设计打开文 件保存另存为查找 红色 复制 字 体 颜 色退出编 辑蓝色剪切文 本 编 辑 器宋体绿色 粘贴字仿宋体楷体字 形粗体 斜体 常规字 号面向对象课程设计报告第3页,共24页3.详细设计JTextArea textarea;//建立文本 JRadioButtonMenuItem rbmi_red,rbmi_blue,rbmi_green;//鼠标右击改变颜色JMenuItem menuitem_copy,menuitem_cut,menuitem_paste,menuitem_seek;//复制, 剪切,粘贴 JMenuItem menuitem_song,menuitem_fang,menuitem_kai;//字体变量 JMenuItem menuitem_normal,menuitem_bold,menuitem_italic;//字形变量 JMenuItem menuitem_12,menuitem_24,menuitem_36;//字号变量 JMenuItem menuitem_exit,menuitem_infor; JPopupMenu popupmenu;//文本快捷键 JMenuItem menuitem_red,menuitem_green,menuitem_blue;//颜色变量 JDialog dialog;//调用对话框 JButton button_seek;//查找 JTextField textfield_seek; JLabel label_seek,label_infor;4.代码调试面向对象课程设计报告 程序代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.swing.JColorChooser; import javax.swing.event.*; public class Notepad extends第4页,共24页JFrameimplementsActionListener,ItemListener,MouseListener { File file; JTextArea textarea; JRadioButtonMenuItem rbmi_red,rbmi_blue,rbmi_green;JMenuItem menuitem_copy,menuitem_cut,menuitem_paste,menuitem_seek; JMenuItem menuitem_song,menuitem_fang,menuitem_kai;//字体变量 JMenuItem menuitem_normal,menuitem_bold,menuitem_italic;//字形变量 JMenuItem menuitem_12,menuitem_24,menuitem_36;//字号变量 JMenuItem menuitem_exit,menuitem_infor; JMenuItem menuitem_zidingyi; JPopupMenu popupmenu; JMenuItem menuitem_red,menuitem_green,menuitem_blue; JDialog dialog; JButton button_seek; JTextField textfield_seek; JLabel label_seek,label_infor; String seek;public Notepad() { super("文本编辑器"); this.setSize(600,400); this.setLocation(250,150); this.setDefaultCloseOperation(HIDE_ON_CLOSE); textarea = new JTextArea();面向对象课程设计报告 Container ss=this.getContentPane();第5页,共24页JScrollPane dd=new JScrollPane(textarea); ss.add(dd); this.textarea.addMouseListener(this); this.addMenu(); this.setVisible(true); this.Dialog(); this.file = null; } public Notepad(String filename) { this(); if (filename!=null) { this.file = new File(filename); this.setTitle(filename); this.textarea.setText(this.readFromFile()); } } public Notepad(File file) { this(); if (file!=null) { this.file = file; this.setTitle(this.file.getName()); this.textarea.setText(this.readFromFile()); } } public void Dialog() { dialog=new JDialog(this,"查找",true); dialog.setLayout(new FlowLayout()); //建立对话框的方法面向对象课程设计报告 dialog.setSize(200,90); label_seek=new JLabel("关键字"); dialog.add(label_seek); textfield_seek=new JTextField(10); dialog.add(textfield_seek); button_seek=new JButton("查找"); dialog.add(button_seek); button_seek.addActionListener(this); } public void addMenu() { JMenuBar menubar = new JMenuBar(); this.setJMenuBar(menubar); JMenu menu_file = new JMenu("文件"); menubar.add(menu_file);第6页,共24页//文件菜单JMenuItem menuitem_open = new JMenuItem("打开"); menu_file.add(menuitem_open); menuitem_open.addActionListener(this); JMenuItem menuitem_save = new JMenuItem("保存"); menu_file.add(menuitem_save); menuitem_save.addActionListener(this); JMenuItem menuitem_saveas = new JMenuItem("另存为"); menu_file.add(menuitem_saveas); menuitem_saveas.addActionListener(this); menuitem_exit=new JMenuItem("退出" ); menu_file.add(menuitem_exit); menuitem_exit.addActionListener(this); JMenu menu_editor=new JMenu("编辑");//编辑菜单 menubar.add(menu_editor); menuitem_seek=new JMenuItem("查找"); menu_editor.add(menuitem_seek); menuitem_seek.addActionListener(this); menuitem_copy=new JMenuItem("复制");面向对象课程设计报告 menuitem_copy.addActionListener(this); menu_editor.add(menuitem_copy); menuitem_cut=new JMenuItem("剪切"); menu_editor.add(menuitem_cut); menuitem_cut.addActionListener(this); menuitem_paste=new JMenuItem("粘贴"); menu_editor.add(menuitem_paste); menuitem_paste.addActionListener(this);第7页,共24页JMenuItem menu_color=new JMenu("颜色");//颜色菜单 menu_editor.add(menu_color); ButtonGroup buttongroup=new ButtonGroup();rbmi_red=new JRadioButtonMenuItem("红",true); buttongroup.add(rbmi_red); menu_color.add(rbmi_red); rbmi_red.addItemListener(this); rbmi_blue=new JRadioButtonMenuItem("蓝",true); buttongroup.add(rbmi_blue); menu_color.add(rbmi_blue); rbmi_blue.addItemListener(this); rbmi_green=new JRadioButtonMenuItem("绿",true); buttongroup.add(rbmi_green); menu_color.add(rbmi_green); rbmi_green.addItemListener(this); JMenu menu_font=new JMenu("设置字体");//设置字体菜单 menubar.add(menu_font); menuitem_song=new JMenuItem("宋体"); menu_font.add(menuitem_song); menuitem_song.addActionListener(this); menuitem_fang=new JMenuItem("仿宋"); menu_font.add(menuitem_fang); menuitem_fang.addActionListener(this); menuitem_kai=new JMenuItem("楷体"); menu_font.add(menuitem_kai);面向对象课程设计报告 menuitem_kai.addActionListener(this);第8页,共24页JMenu menu_style=new JMenu("设置字形");//设置字形菜单 menubar.add(menu_style); menuitem_bold=new JMenuItem("粗体"); menu_style.add(menuitem_bold); menuitem_bold.addActionListener(this); menuitem_italic=new JMenuItem("斜体"); menu_style.add(menuitem_italic); menuitem_italic.addActionListener(this); menuitem_normal=new JMenuItem("常规"); menu_style.add(menuitem_normal); menuitem_normal.addActionListener(this); JMenu menu_size=new JMenu("设置字号"); menubar.add(menu_size); menuitem_12=new JMenuItem("12"); menu_size.add(menuitem_12); menuitem_12.addActionListener(this); menuitem_24=new JMenuItem("24"); menu_size.add(menuitem_24); menuitem_24.addActionListener(this); menuitem_36=new JMenuItem("36"); menu_size.add(menuitem_36); menuitem_36.addActionListener(this); popupmenu=new JPopupMenu(); JMenuItem menuitem_red=new JMenuItem("红色"); popupmenu.add(menuitem_red); menuitem_red.addActionListener(this); JMenuItem menuitem_green=new JMenuItem("绿色"); popupmenu.add(menuitem_green); menuitem_green.addActionListener(this); menuitem_blue=new JMenuItem("蓝色"); popupmenu.add(menuitem_blue); menuitem_blue.addActionListener(this); //快捷菜单 //设置字号菜单面向对象课程设计报告 textarea.add(popupmenu); }第 9 页,共 24 //向文本区内添加快捷菜单页public void writeToFile(String lines) { try {//写文件FileWriter fout = new FileWriter(this.file); fout.write(lines+"\r\n"); fout.close(); } catch (IOException ioex) { return; } } public String readFromFile() { try { FileReader fin = new FileReader(this.file); BufferedReader bin = new BufferedReader(fin); String aline="", lines=""; do { aline = bin.readLine(); if (aline!=null) lines += aline + "\r\n"; } while (aline!=null); bin.close(); fin.close(); return lines; } catch (IOException ioex) //读文件面向对象课程设计报告 { return null; } } public boolean openDialog() {第10页,共24页//打开对话框FileDialog filedialog = new FileDialog(this,"Open",FileDialog.LOAD); filedialog.setVisible(true); if ((filedialog.getDirectory()!=null) && (filedialog.getFile()!=null)) { this.file filedialog.getFile()); return true; } else return false; } public boolean saveDialog() { FileDialog filedialog = new FileDialog(this,"SaveAs",FileDialog.SAVE); filedialog.setFile(this.file.getName()); filedialog.setVisible(true); if ((filedialog.getDirectory()!=null) && (filedialog.getFile()!=null)) { this.file = new File(filedialog.getDirectory(), //保存对话框 = new File(filedialog.getDirectory(),filedialog.getFile()+".txt"); return true; } else return false; } public void actionPerformed(ActionEvent e) { //事件处理面向对象课程设计报告 if(e.getActionCommand()=="打开") { if (this.openDialog()) {第11页,共24页this.setTitle(this.file.getName()); this.textarea.setText(this.readFromFile()); } } if(e.getActionCommand()=="保存" && this.file!=null) { this.writeToFile(this.textarea.getText()); } if(e.getActionCommand()==" e.getActionCommand()=="另存为") { if (this.saveDialog()) { this.writeToFile(this.textarea.getText()); this.setTitle(this.file.getName()); } } if(e.getActionCommand()=="退出") { System.exit(0); } if(e.getSource()==menuitem_copy) { textarea.copy(); } if(e.getSource()==menuitem_paste) { textarea.paste(); } //编辑菜单的事件处理 保 存 " && this.file==null ||面向对象课程设计报告 if(e.getSource()==menuitem_cut) { textarea.cut(); } if(e.getSource()==menuitem_red) { textarea.setForeground(Color.red); } if(e.getSource()==menuitem_blue) { textarea.setForeground(Color.blue); } if(e.getSource()==menuitem_green) { textarea.setForeground(Color.green); } Font font=textarea.getFont(); int style=font.getStyle(); if(e.getSource()==menuitem_song) { textarea.setFont(new第12页,共24页//颜色菜单的事件处理//设置字体变量java.awt.Font("宋体",java.awt.Font.PLAIN,font.getSize())); } if(e.getSource()==menuitem_fang) { textarea.setFont(new java.awt.Font(" 仿 宋",java.awt.Font.PLAIN,font.getSize())); } if(e.getSource()==menuitem_kai) { textarea.setFont(new java.awt.Font(" 楷 体",java.awt.Font.PLAIN,font.getSize()));面向对象课程设计报告 } if(e.getSource()==menuitem_bold) { style=style^1;第13页,共24页//设置字形菜单的事件处理textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_italic) { style=style^2; textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_normal) { style=style^3; textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_12) { textarea.setFont(new java.awt.Font(font.getName(),style,12)); } if(e.getSource()==menuitem_24) { textarea.setFont(new java.awt.Font(font.getName(),style,24)); } if(e.getSource()==menuitem_36) { textarea.setFont(new java.awt.Font(font.getName(),style,36)); } if(e.getSource()==menuitem_seek) { dialog.setVisible(true); } seek=textarea.getText(); //查找菜单项的处理事件面向对象课程设计报告 第 String tseek=textfield_seek.getText(); if(e.getSource()==button_seek) { int i=textfield_seek.getText().length(); int j=seek.indexOf(tseek); textarea.setSelectionStart(j); textarea.setSelectionEnd(i+j); textfield_seek.setText(""); } } public void itemStateChanged(ItemEvent e) { if(e.getSource()==rbmi_red) { textarea.setForeground(java.awt.Color.red); } if(e.getSource()==rbmi_blue) { textarea.setForeground(java.awt.Color.blue); } if(e.getSource()==rbmi_green) { textarea.setForeground(java.awt.Color.green); } } public void mouseClicked(MouseEvent mec) { if (mec.getModifiers()==mec.BUTTON3_MASK)14页,共24页//ItemListener 事件处理方法//鼠标处理事件popupmenu.show(textarea,mec.getX(),mec.getY()); } public void mousePressed(MouseEvent mep) public void mouseReleased(MouseEvent mer) public void mouseEntered(MouseEvent mee) { { { } } }面向对象课程设计报告 public void mouseExited(MouseEvent mex) public void mouseDragged(MouseEvent med) public static void main(String arg[]) { new Notepad("文本编辑器"); } }第 { {15 页,共 } }24页//main 方法编译代码实现各种功能:打开任意目录下一文本文件:文件目录下“另存为”功能:面向对象课程设计报告第16页,共24页编辑目录下“查找”功能:编辑目录下“复制” “剪切” “粘贴”功能:面向对象课程设计报告第17页,共24页面向对象课程设计报告第18页,共24页字体设置功能:面向对象课程设计报告第19页,共24页编辑目录下“颜色“功能:设置字型功能:面向对象课程设计报告第20页,共24页设置字号功能:面向对象课程设计报告第21页,共24页运行完毕,可关闭窗口退出程序或点击文件目录下的“退出”功能面向对象课程设计报告第22页,共24页5. 软件发布面向对象课程设计报告 首先制作 Manifest 文件,代码如下; Manifest-Version:1.0 Mani-Class: notepad Created-Boy:1.6(Sun Microsystems Inc.) 保存为 Manifest.mf,保存在 D:\java 打开 CMD 在 DOS 下生成 jar 文件:第23页,共24页D:\java\jar cmf Notepad.jar Manifest.mf notepad.class 生成 JAR 文件,双击运行。

虚拟的java编辑器课程设计报告

虚拟的java编辑器课程设计报告

虚拟的Java编辑器设计报告一、需求分析此次课程设计名称为JAVA编辑器。

需要设计一个图形界面的文本编辑器,能编辑Java语言源程序,界面和功能类似Editplus。

演示程序为计算机和用户的对话形式执行,即在计算机的终端显示图形界面的文档编辑器,然后用户就可以实现编辑,保存等像记事本一样的功能。

(1)打开以有文件,保存编辑文件,退出编辑器并提醒保存;(2)查找编辑区中的字符串,用已知字符串替换查找的字符串;(3)显示文件的存取路径;(4)剪切,复制,粘贴,删除等;(5)改变文本区字体的颜色,字体大小和形状的功能;(6)关键字显示蓝色、类库类名显示红色。

二. 设计1.设计思想Java编辑器是用来编写java程序的源代码。

Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。

图形界面的实现:就选择了swing来完成实现,在选择组件上,文本编辑区就选用了JTextPane作为主要的部件。

由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。

在设计类的时候,考虑到简单明了,一个主类,一个默认属性myfr类,染色类SyntaxHighlighter 作为程序的整体框架,所有的对象和方法都是在默认属性类和染色类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类染色类中实现的。

本程序主类完成对象的实例化及显示。

2.功能设计本程序涉及到了对图形用户界面的设计与实现和菜单的设计与实现。

用户可以通过此编辑器对java文件进行文字的复制、剪切、粘贴、删除、查找、替换、时间的插入、设置字体颜色和关键字、类库名着色等。

本程序主要有以下3个模块组成:(1)主体模块由窗口、功能菜单、文本框组成。

为用户选择编辑的功能提供了简单、方便的界面。

Java的窗口由JFrame类生成,我们可以在创建的空白窗口上添加组件。

java简易文本编辑

java简易文本编辑

JA V A课程设计报告实验名称:文本编辑器姓名:学号:学院:专业:指导老师:一.需求分析1.实验题目:文本编辑器2.基本要求:设计一个简易文本编辑器。

要求除进行文本文件的编辑、阅读之外,还要实现文件的打开、保存功能;复制、剪切与粘贴等剪贴板操作;文本的查找与替换操作;各操作通过菜单选择。

其他:jdk1.7的版本,在JCreator下运行通过。

二.概要设计本程序有以下几个类:class MyEditor extends JFrame implements ActionListener,MouseListener//主窗口类,实现窗口,文本区监听和鼠标监听本程序有一下方法:public MyEditor()//实现窗口的,位置监听的添加public void actionPerformed(ActionEvent ae)//实现对菜单项的操作public void mousePressed(MouseEvent e)//实现鼠标右击时相应的操作public static void main(String[] args)//创建类主类是MyEditor,其中主窗口的创建的在主函数里完成的,各弹出窗口及相应的功能是在相应的事件中完成的。

actionPerformed方法中实现对文件的打开、保存、退出操作,mousePressed方法实现鼠标在文本区中的剪切、复制、粘贴操作。

三.详细设计1. 程序运行流程图:2.完整源代码及简要注释import javax.swing.*;import java.awt.*;import java.io.*;import java.awt.event.*;public class MyEdit extends JFrame implements ActionListener,MouseListener{ //定义变量JMenuItem open=new JMenuItem("打开"),save=new JMenuItem("保存"),exit=newJMenuItem("退出"),bg=new JMenuItem("背景颜色"),small=new JMenuItem("小"),middle=new JMenuItem("中"),big=new JMenuItem("大"),cg=new JMenuItem("倾斜并加粗"),qx=new JMenuItem("倾斜"),jc=new JMenuItem("加粗");JMenu file=new JMenu("文件"),edit=new JMenu("编辑"),mode=new JMenu("格式"),size=new JMenu("字体大小"),help=new JMenu("帮助");JMenuBar jmb=new JMenuBar();JTextArea area=new JTextArea();JPopupMenu pm=new JPopupMenu();JMenuItem copy=new JMenuItem("复制"),cut=new JMenuItem("剪切"),paste=new JMenuItem("粘贴");public MyEdit() {super("文本编辑器");setVisible(true);setBounds(200,200,400,400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加监听cg.addActionListener(this);qx.addActionListener(this);jc.addActionListener(this);bg.addActionListener(this);size.addActionListener(this);small.addActionListener(this);middle.addActionListener(this);big.addActionListener(this);save.addActionListener(this);open.addActionListener(this);area.addMouseListener(this);copy.addActionListener(this);cut.addActionListener(this);paste.addActionListener(this);// 加入组件size.add(small);size.add(middle);size.add(big);file.add(open); file.add(save);file.add(exit);mode.add(cg);mode.add(qx);mode.add(jc);edit.add(bg);edit.add(mode);edit.add(size);jmb.add(file);jmb.add(edit);jmb.add(help);pm.add(copy);pm.add(cut);pm.add(paste);setJMenuBar(jmb);add(area);validate();}public void actionPerformed(ActionEvent ae){if (ae.getSource()==save){try{JFileChooser jfc=new JFileChooser();int mychoose=jfc.showSaveDialog(this);if(mychoose==jfc.APPROVE_OPTION){File file=jfc.getSelectedFile();FileOutputStream fos=new FileOutputStream(file); byte[]b=area.getText().getBytes();fos.write(b,0,b.length);fos.close();}}catch(Exception e){e.printStackTrace();} }else if (ae.getSource()==open){try{JFileChooser jfc=new JFileChooser();int mychoose=jfc.showOpenDialog(this);if(mychoose==jfc.APPROVE_OPTION){File file=jfc.getSelectedFile();FileInputStream fis=new FileInputStream(file);byte[]b=new byte[200];int len;while ((len=fis.read(b))!=-1)area.append(new String(b,0,len));fis.close();} }catch(Exception e){e.printStackTrace();}}else if (ae.getSource()==copy)area.copy();else if (ae.getSource()==cut)area.cut();else if (ae.getSource()==paste)area.paste();else if(ae.getSource()==bg){Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground());if(newColor!=null)area.setBackground(newColor);}else if(ae.getSource()==exit){System.exit(0);}else if(ae.getSource()==cg){Font font=area.getFont();int style=font.getStyle();style=style^3;area.setFont(new Font("",style,font.getSize()));}else if(ae.getSource()==qx){Font font=area.getFont();int style=font.getStyle();style=style^2;area.setFont(new Font("",style,font.getSize()));}else if(ae.getSource()==jc){Font font=area.getFont();int style=font.getStyle();style=style^1;area.setFont(new Font("",style,font.getSize()));}else if(ae.getSource()==small){Font font=area.getFont();int style=font.getStyle();area.setFont(new Font(font.getName(),style,12));}else if(ae.getSource()==middle){Font font=area.getFont();int style=font.getStyle();area.setFont(new Font(font.getName(),style,24));}else if(ae.getSource()==big){Font font=area.getFont();int style=font.getStyle();area.setFont(new Font(font.getName(),style,36));}}public void mouseReleased(MouseEvent me){}public void mouseEntered(MouseEvent me){}public void mouseExited(MouseEvent me){}public void mouseClicked(MouseEvent me){}public void mousePressed(MouseEvent me){if(me.getModifiers()==InputEvent.BUTTON3_MASK){pm.show(area,me.getX(),me.getY());}}//主函数,程序入口public static void main(String[] args) {new MyEdit()}}3.简要设计思路首先创建一个窗体,在窗体中添加打开、保存、退出菜单项,实现对文件的操作;其次,在窗体中添加一个文本区,用来显示打开的文件中的内容;还需要添加一个弹出式菜单,包括剪切、复制、粘贴功能,实现对文本区中的内容进行相应的操作。

java课设—文本编辑器的设计与实现

java课设—文本编辑器的设计与实现

淮海工学院计算机工程学院课程设计报告设计名称:面向对象课程设计选题名称:文本编辑器的设计与实现姓名:学号:专业班级:系(院):计算机工程学院设计时间:2015.6.21~2014.7.4设计地点:计算机楼机房、教室、宿舍zhuti zt=new zhuti();}class zhuti extends Frame implements ActionListener {Button btn;Label lab;zhuti(){setLayout(null);btn=new Button("确定");lab=new Label("这是一个简单的文本编辑器!");add(btn);add(lab);btn.addActionListener(this);setBounds(200,200,250,150);setVisible(true);lab.setBounds(20 ,60,220,30);lab.setFont(new Font("楷体",Font.BOLD,16));lab.setBackground(Color.cyan);btn.setBounds(100,100,50,30);btn.setBackground(Color.cyan);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn){dispose();}}}4.2运行结果显示如图1:文本编辑器主界面如图2:文本编辑器文件菜单如图3:文本编辑器编辑菜单如图4:文本编辑器格式菜单如图6:文本编辑器字体格式和背景5. 课程设计心得通过这次的课程设计,我受益了很多,因为这次设计是使用界面设计的程序,原本对这些学的不精的我,通过这次的课程设计让我学会了使用图形用户界面。

对基本的图形用户界面的设计已经掌握。

JAVA程序设计实验2(编辑器)报告

JAVA程序设计实验2(编辑器)报告

private JMenuItem Help;
private JFileChooser chooser;
private Font
font;
public static void main(String[] args)
{
new Text(); } public Text() {
super("文本编辑器"); A = new JTextArea(5, 30); A.setLineWrap(true); this.add(A, BorderLayout.CENTER); Container mContainer = getContentPane(); JScrollPane scrollPane = new JScrollPane(A);//滚动条 mContainer.add(scrollPane); MenuBar = new JMenuBar(); New = new JMenuItem("新建"); File = new JMenu("文件"); Open = new JMenuItem("打开"); Save = new JMenuItem("保存"); Close = new JMenuItem("关闭"); File.add(New); File.add(Open); File.add(Save); File.addSeparator(); File.add(Close); MenuBar.add(File); New.addActionListener(this); Open.addActionListener(this); Save.addActionListener(this); Close.addActionListener(this); Eidt = new JMenu("编辑"); Cut = new JMenuItem("剪切 (Ctrl+X)"); Copy = new JMenuItem("复制 (Ctrl+C)"); Paste = new JMenuItem("粘贴 (Ctrl+V)");

Java课程设计—文本编辑器的设计与实现

Java课程设计—文本编辑器的设计与实现

面向对象课程设计报告第 1 页,共11 页主要代码:Write note;{// 新建选项File_bar_creat = this.AddItem("新建(N) Ctrl+N", File_bar);File_bar_creat.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0){// 设置新文件内容text.setText("");}});//打开选项File_bar_open = this.AddItem("打开(O) Ctrl+O", File_bar);File_bar_open.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){try{jfc.setCurrentDirectory(new File("."));// 设置当前目录jfc.setFileFilter(new filter()); // 过滤文件jfc.setAcceptAllFileFilterUsed(false); // 全选文件jfc.showOpenDialog(null); // 弹出一个 "Open File" 文件选择器对话框。

file = jfc.getSelectedFile(); // 获取已经选择目录jsb = file.getName(); // 获取目录名setTitle(jsb); // 显示目录名int length = (int) (jfc.getSelectedFile()).length();1.程序运行主界面如图1示:图12.各个菜单基本构成如下图2、图3、图4、图5和图6所示:图2图3图4图63.依次选择文件目录下新建、打开、保存、另存为和退出按钮,运行结果如图7、图8、图9、图10所示:图7图8面向对象课程设计报告第11 页,共11 页图104.对于数据的编辑,该实验实现了剪切、复制、粘体、撤销和删除等基本功能。

java文本编辑器

java文本编辑器

软件学院
课程设计报告书
课程名称
设计题目文本编辑器的设计与实现
专业班级 XXXXXXXXXXX 学号 xxxxxxxxxx 姓名 xxx 指导教师
2011 年 11月
图1文本编辑器中字体颜色界面
图2 文本编辑器主界面
图3文本编辑器编辑界面图4文本编辑器文件界面
图5文本编辑器格式
图6文本编辑器查找界面
图7 文本编辑器帮助界面图8文本编辑器字体名称界面
图9文本编辑器字体风格界面
图10文本编辑器中帮助中关于对话框
图11查找消息对话框
图12文本编辑器中另存为对话框4.4.2主要代码。

Java课设_文本编辑器

Java课设_文本编辑器

Java课设_文本编辑器预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制目录第一章绪论 (1)一、Java语言特点 (1)二、Java发展前景 (2)第二章问题分析 (5)一、文本编辑器的设计 (5)二、功能、性能 (5)三、开发环境 (6)四、设计示意图 (6)第三章系统详细设计 (7)一、文件打开与保存对话框的设计 (7)二、调用颜色对话框的设计 (9)三、建立Choice下拉列表实现对字体的设计 (10)四、剪切,复制,粘贴的设计 (10)第四章代码实现 (12)一、字形,字体大小部分 (12)二、帮助中关于主题部分 (14)第五章测试与调试 (16)一、调试分析 (16)二、测试结果 (16)第六章总结与心得 (19)第七章附录 (20)一、源代码 (20)二、参考文献 (31)第一章绪论一、Java语言特点1、面向对象Java语言是一个完全面向对象的语言,并且对软件工程技术有很强分得支持:Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型:对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏:类提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

2、平台无关性严格的语言定义:没有“依据机器的不同而不同”或“由编译器决定”等字限,最后的目标码都是一致:的:Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行是系统,Java程序就可在任意的处理器上运行。

这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。

3、安全问题Java是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性;毁灭系统资源;消耗系统资源;挖掘系统或个人机密;骚扰正常工作的进行。

4、多线程单线程程序一个时刻只能做一件事情,多线程程序允许在同一时刻同时做多件事情;其他大多数高级语言,包括C,C++等,都不支持多线程,只能编写顺序执行的程序(除非有操作系统API的支持);Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序;多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作;通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

文本编辑器软件,java,课程设计,山东建筑大学

文本编辑器软件,java,课程设计,山东建筑大学

综合实验一文本编辑软件一、实验目的掌握编写图形界面的方法,包括菜单、布局管理器、滚动条、弹出提示信息对话框、输入对话框、打开文件对话框、保存文件对话框、事件处理,以及文本文件的读写。

二、实验环境PC系列微机,Windows XP。

Eclipse、JDK150或更高版本。

三、实验内容public class TextEdit extends JFrame {//图形界面层JMenuBar jmb = null;JMenu jm1 = null;JMenuItem jmi1_XinJian = null;JMenuItem jmi2_DaKai = null;JMenuItem jmi3_BaoCun = null;JMenuItem jmi_TuiChu = null;JMenu jm2 = null;JMenuItem jmi_Copy = null;JMenuItem jmi_Paste = null;JMenuItem jmi_Find = null;JMenuItem jmi_Replace = null;JMenu jm3 = null;JMenuItem jmi9 = null;JTextArea jta = null;//文本操作层JFileChooser jc;FileDialog save = null;String fileName = "无标题";//剪贴板Clipboard clipboard=null;//用于得到剪贴板Toolkit toolKit;//设置flag用于判断是不是第一次保存文件boolean flag = true;boolean flag1=false;boolean flag2=true;public void setFlag1(boolean flag1){this.flag1 = flag;}String filepath=null;String filename=null;public void setFlag(boolean flag){this.flag = flag;}public void setPath(String filepath){ this.filepath= filepath;}public void setName(String filename){ this.filename= filepath;}public void setNewfile(boolean flag){this.flag2=flag;}public void init() {//创建图形界面层对象jmb = new JMenuBar();jm1 = new JMenu("文件");jmi1_XinJian = new JMenuItem("新建");jmi2_DaKai = new JMenuItem("打开");jmi3_BaoCun = new JMenuItem("保存");jmi_TuiChu = new JMenuItem("退出");jm2 = new JMenu("编辑");jmi_Copy = new JMenuItem("复制");jmi_Paste = new JMenuItem("粘贴");jmi_Find = new JMenuItem("查找");jmi_Replace = new JMenuItem("替换");jm3 = new JMenu("帮助");jmi9 = new JMenuItem("关于");jta = new JTextArea();JScrollPane jsp=null;jsp=new JScrollPane(jta);//向容器里面添加图形界面对象jmb.add(jm1);jmb.add(jm2);jmb.add(jm3);this.add(jmb, BorderLayout.NORTH);jm1.add(jmi1_XinJian);jm1.addSeparator();jm1.add(jmi2_DaKai);jm1.addSeparator();jm1.add(jmi3_BaoCun);jm1.addSeparator();jm1.add(jmi_TuiChu);jm2.addSeparator();jm2.add(jmi_Copy);jm2.addSeparator();jm2.add(jmi_Paste);jm2.addSeparator();jm2.add(jmi_Find);jm2.addSeparator();jm2.add(jmi_Replace);jm3.add(jmi9);add(jsp);//是文本里面的分行jta.setLineWrap(true);//创建操作层对象//打开文件jc=new JFileChooser();//保存文件save = new FileDialog(this, "保存", FileDialog.SAVE);//得到剪贴板toolKit = Toolkit.getDefaultToolkit();clipboard = toolKit.getSystemClipboard();//当运行该程序时即进入默认新建状态,此时可以输入文本内容//打开的监听jmi2_DaKai.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){setFlag1(false);setNewfile(false);jc.setDialogTitle("打开文件");//不设置标题默认也是打开,因为创建的就是打开对话框int index=jc.showOpenDialog(null);//点击确定按钮之后的操作,说明index的值就是点击确定按钮之后的值if(index==JFileChooser.APPROVE_OPTION){File file=jc.getSelectedFile();String name=file.getName();setName(null);String filepath=file.getAbsolutePath();setPath(filepath);setFlag(false);System.out.println(filepath);//注意截取的名字包含了.txt所以要把这几个字符去掉,并替换为“—记事本”int name_size=name.length();String str2=name.substring(0,name_size-4);String new_str=str2+"-记事本";//要使刚打开文件时的光标位置在第一个字节,用filereader 也许不能实现,可以用RandomAccessFile以及里面的seek(0)方法来实现 FileReader fr;try {fr = new FileReader(file);//要读取得文件BufferedReader bf=new BufferedReader(fr);String str=null;try {jta.setText("");while((str=bf.readLine())!=null){jta.append(str+"\n");//用于修改当前文件的标题setTitle(new_str);//使光标可见,用不用均可,默认即为truejta.setFocusable(true);}bf.close();} catch (IOException e1) {e1.printStackTrace();}} catch (FileNotFoundException e1) {e1.printStackTrace();}}}});//保存的监听jmi3_BaoCun.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { boolean isNewFile=true;save.setSize(300, 400);//之所以用FileDialog是因为没有在JFileChooser中找到得到文件路径的方法//为了使已存在的文件再次保存时不再显示保存对话框,需要对定义flag变量对setVisible()方法进行设置save.setVisible(flag);//filename为路径名和文件名fileName=save.getDirectory()+save.getFile();if(isNewFile||flag2){setFlag1(true);isNewFile=false;flag=false;if(fileName!=null){try {//保存就要有要保存到的文件File file=new File(fileName);FileWriter fw=new FileWriter(file);//如果换行呢?fw.write(jta.getText());fw.close();} catch (IOException e1){e1.printStackTrace();}}}if(flag1){File file=new File(fileName);FileWriter fw;try {fw = new FileWriter(file);fw.write(jta.getText());fw.close();} catch (IOException e1) {e1.printStackTrace();}}if(filepath!=null){File file=new File(filepath);FileWriter fw;try {fw = new FileWriter(file);fw.write(jta.getText());fw.close();} catch (IOException e1){e1.printStackTrace();}}}});//退出监听jmi_TuiChu.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();}});//复制监听复制和粘贴的中间媒介就是clipboardjmi_Copy.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String text = jta.getSelectedText();//创建能传输指定 String 的 Transferable,Transferable是字符串的对象即使能传输文本的对象StringSelection selection=new StringSelection(text);//将剪贴板的当前内容设置到指定的 transferable 对象,并将指定的剪贴板所有者作为新内容的所有者注册clipboard.setContents(selection,null);}});//粘贴监听jmi_Paste.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//得到transferable对象Transferable contents = clipboard.getContents(this);if(contents==null)return;String text=null;try{//得到transferable对象的文本// DataFlavor 表示 Java Unicode String 类 text=(String)contents.getTransferData(DataFlavor.stringFlavor);}catch(Exception ex){System.out.println("出现异常");}//因为在进行选择的时候就已经得到了位置jta.replaceRange(text,jta.getSelectionStart(),jta.getSelectionEnd());}});//查找监听jmi_Find.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){@SuppressWarnings("unused")SearchDemo sd=new SearchDemo(jta);}});//替换监听jmi_Replace.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){@SuppressWarnings("unused")ReplaceDemo rd=new ReplaceDemo(jta);}});jmi9.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(null, "你好,欢迎使用由张昌明领衔制作的记事本!"+"\n"+" " +" 谢谢!","帮助", 2);}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 600, 600);setVisible(true);}public TextEdit() {super("文本编辑器");}public static void main(String[] args){TextEdit td = new TextEdit();td.init();}}SearchDemo//dilog 的用法和JFrame的用法几乎相似//光标位置的值就是索引值public class SearchDemo extends JDialog{private static final long serialVersionUID = 1L;JLabel lbl=null;JTextField jtf=null;JCheckBox jck=null;JRadioButton jrb_up=null;JRadioButton jrb_down=null;ButtonGroup bg=null;JButton btn_search=null;JButton btn_retrate=null;JPanel jpl1=null;JPanel jpl2=null;JPanel jpl3=null;JTextArea jta=null;public void init(){Container c=this.getContentPane();c.setLayout(new FlowLayout());jpl1=new JPanel();lbl=new JLabel("查找");jtf=new JTextField(17);btn_search=new JButton("查找下一个");jpl1.add(lbl);jpl1.add(jtf);jpl1.add(btn_search);jpl3=new JPanel();jck=new JCheckBox("区分大小写");jpl2=new JPanel();jrb_up=new JRadioButton("向上");jrb_down=new JRadioButton("向下");jrb_down.setSelected(true);bg=new ButtonGroup();bg.add(jrb_up);bg.add(jrb_down);jpl2.add(jrb_up);jpl2.add(jrb_down);jpl2.setBorder(BorderFactory.createTitledBorder("方向"));btn_retrate=new JButton(" 取消 ");jpl3.add(jck);jpl3.add(jpl2);jpl3.add(btn_retrate);c.add(jpl1);c.add(jpl3);btn_search.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){int value=0,value2=0;//该方法用于放回当前鼠标的位置的整型值int value3=jta.getCaretPosition();String str1,str2,str3,str4,str_end1,str_end2;str1=jta.getText();str2=jtf.getText();str3=str1.toLowerCase();str4=str2.toLowerCase();//jck是是否区分大小写if(jck.isSelected()){str_end1=str1;str_end2=str2;}else{str_end1=str3;str_end2=str4;}//if(jrb_up.isSelected()){//若为空则是第一次进行查找if(jta.getSelectedText()==null){// 从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

Java程序设计实验报告文本编辑器的设计与实现

Java程序设计实验报告文本编辑器的设计与实现

Java程序设计实验报告文本编辑器的设计与实现Java程序设计实验报告学生姓名:邵强学号:课程编号:06021801-0实验名称:文本编辑器的设计与实现实验内容:设计与实现一个文本编辑器,要求具有方便的图形用户界面,包括标题栏、菜单栏,菜单栏有相关的菜单和菜单项,有快捷键,具有编辑、打开、保存、复制、粘贴等功能(详细功能要求经过运行提供的字节码文件来确定,主类是JNotePadUI)。

完成有关类的设计,并调试运行,给出有代表性的程序输出结果(程序运行截图)。

程序代码如下:package note;import java.awt.*;import java.awt.event.*;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.*;import javax.swing.*;public class Mynote extends JFrame implements ActionListener{ JMenu menuFile; JMenu menuEdit ; JMenu menuAbout; JPopupMenu popUpMenu;JTextArea txt=null; //编辑区JLabel lab=new JLabel("未修改");JFileChooser fileChooser = new JFileChooser();File saveFileName = null, fileName = null;public Mynote(String s){super(s);createMenuBar(); //菜单栏createContentPane(); //文本编辑区组件setBounds(100,100,600,450);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ closeFile(); } });setVisible(true); }public void createMenuBar() {JMenuBar menuBar = new JMenuBar();menuFile = new JMenu("文件");menuEdit = new JMenu("编辑");menuAbout= new JMenu("关于");menuBar.add(menuFile);menuBar.add(menuEdit);menuBar.add(menuAbout);JMenuItem itemOpen = new JMenuItem("打开"); menuFile.add(itemOpen);itemOpen.addActionListener(this);menuFile.addSeparator();JMenuItem itemSave = new JMenuItem("保存");menuFile.add(itemSave);itemSave.addActionListener(this);JMenuItem itemSaveas=new JMenuItem("另存为"); menuFile.add(itemSaveas);itemSaveas.addActionListener(this);menuFile.addSeparator();JMenuItem itemQuit = new JMenuItem("关闭");menuFile.add(itemQuit);itemQuit.addActionListener(this);JMenuItem itemCut = new JMenuItem("剪切");menuEdit.add(itemCut);itemCut.addActionListener(this);JMenuItem itemCopy = new JMenuItem("复制");menuEdit.add(itemCopy);itemCopy.addActionListener(this);JMenuItem itemPaste= new JMenuItem("粘贴");menuEdit.add(itemPaste);itemPaste.addActionListener(this);JMenuItem itemAboutnote = new JMenuItem("关于NotePad");menuAbout.add(itemAboutnote);itemAboutnote.addActionListener(this);//右键菜单JMenuItem Copyitem=new JMenuItem("复制");Copyitem.addActionListener(this);JMenuItem Cutitem=new JMenuItem("剪切");Cutitem.addActionListener(this);JMenuItem Pasteitem=new JMenuItem("粘贴");Pasteitem.addActionListener(this);popUpMenu=new JPopupMenu();popUpMenu.add(Copyitem);popUpMenu.add(Cutitem);popUpMenu.add(Pasteitem);//快捷键itemOpen.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MAS K,false));itemSave.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK ,false));itemSaveas.setAccelerator(KeyStroke.getKeyStroke('A',Event.CTRL_MA SK,false));itemQuit.setAccelerator(KeyStroke.getKeyStroke('Q',Event.CTRL_MAS K,false));itemCut.setAccelerator(KeyStroke.getKeyStroke('X',Event.CTRL_MASK, false));itemCopy.setAccelerator(KeyStroke.getKeyStroke('C',Event.CTRL_MAS K,false));itemPaste.setAccelerator(KeyStroke.getKeyStroke('V',Event.CTRL_MAS K,false));setJMenuBar(menuBar);}private boolean isChanged(){if(lab.getText().equals("未修改"))return false;else return true;}public void actionPerformed(ActionEvent e){int option=-1;if(e.getActionCommand().equals("打开")) option=0;if(e.getActionCommand().equals("保存")) option=1;if(e.getActionCommand().equals("另存为")) option=2;if(e.getActionCommand().equals("关闭")) option=3;if(e.getActionCommand().equals("剪切")) option=4;if(e.getActionCommand().equals("复制")) option=5;if(e.getActionCommand().equals("粘贴"))option=6;if(e.getActionCommand().equals("关于NotePad")) option=7;switch(option){case 0:{if(!isChanged()){ open(); }else{ int option2=JOptionPane.showConfirmDialog(this,"文件已修改,是否保存?","保存文件?",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);switch(option2){case JOptionPane.YES_OPTION:saveFile();//保存文件break;case JOptionPane.NO_OPTION:open();break;}}break;}case 1:saveFile();break;case 2:saveFileAs();break;case 3:closeFile();break;case 4:Cut();break;case 5:Copy();break;case 6:Paste();break;case 7:about();break;default:break;}}public void createContentPane() //文本编辑区组件{JScrollPane scrollPane; //滑动条txt = new JTextArea(10,30);txt.setEditable(true);txt.setFont(new Font("宋体",Font.PLAIN,18));txt.setLineWrap(true);scrollPane = new JScrollPane(txt);add(scrollPane, BorderLayout.CENTER);add(lab,BorderLayout.SOUTH);txt.addKeyListener(new KeyAdapter(){public void keyTyped(KeyEvent e){ lab.setText("已修改"); }});txt.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e){if(e.getButton()==MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(),e.getX(),e.getY());}public void mouseClicked(MouseEvent e){if(e.getButton()==MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});}private void open(){int option=fileChooser.showOpenDialog(this);if(option==JFileChooser.APPROVE_OPTION){ try{ //打开所选文件BufferedReader buf=new BufferedReader(new FileReader(fileChooser.getSelectedFile()));//设置文件标题setTitle(fileChooser.getSelectedFile().toString());//删除前一次文件txt.setText("");//设置状态栏lab.setText("未修改");//取得系统相依的换行符StringlineSeparator=System.getProperty("line.separator");//读取文件并附加至文字编辑区String text;while((text=buf.readLine())!=null){txt.append(text);txt.append(lineSeparator);}buf.close();}catch(IOException e){JOptionPane.showMessageDialog(this,e.toString(),"打开文件失败",JOptionPane.ERROR_MESSAGE);} }}private void saveFile(){//从标题栏取得文件名称File file=new File(getTitle());//若指定文件不存在if(!(file.exists())){ saveFileAs(); }else{ try{ //打开指定文件BufferedWriter buf=new BufferedWriter(new FileWriter(file));//将文字编辑区的文字写入文件buf.write(txt.getText());buf.close();//设置状态栏为未修改lab.setText("未修改");}catch(IOException e){JOptionPane.showMessageDialog(this, e.toString(),"写入文件失败",JOptionPane.ERROR_MESSAGE); }}}private void saveFileAs(){ //显示对话框int option3=fileChooser.showSaveDialog(this);//如果确认选择文件if(option3==JFileChooser.APPROVE_OPTION){ //取得选择的文件File file=fileChooser.getSelectedFile();//在标题栏上设置文件名称setTitle(file.toString());try{ //建立文件file.createNewFile();//进行文件保护saveFile();}catch(IOException e){ JOptionPane.showMessageDialog(this,e.toString(),"无法建立文件",JOptionPane.ERROR_MESSAGE);}}}private void closeFile(){//是否已保存文件if(!isChanged()) dispose();else{int option= JOptionPane.showConfirmDialog(this,"文件已修改,是否保存?","保存文件?",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);switch(option){case JOptionPane.YES_NO_OPTION:saveFile();case JOptionPane.NO_OPTION:dispose();}}}private void Cut(){txt.cut();lab.setText("已修改");popUpMenu.setVisible(false);}private void Copy()txt.copy();popUpMenu.setVisible(false);}private void Paste(){txt.paste();lab.setText("已修改");popUpMenu.setVisible(false);}private void about(){//显示对话框JOptionPane.showOptionDialog(this,"程序名称\n"+" JNotePad\n"+"简介:\n"+" 一个简单的文字编辑器\n","关于JNotePad",JOptionPane.DEFAULT_OPTION,RMATION_MESSAGE,null,null,null);}public static void main(String args[]) {new Mynote("陆庆庆");}程序有代表性的输出结果及结果分析:这是其中的几个画面截图。

文本编辑器课程设计报告

文本编辑器课程设计报告

.Java课程设计报告目:文本编辑器题班级:号:学姓名:绩:成日日期:月年..目录一、综合设计的目的与要求3……………………………………二、综合设计正文3…………………………………………………1.系统分析 (3)1.1……………………3系统开发背景、开发范围、建设目标与必要性开发1.2..................................................................3需求分析2.系统设计 (3)2.1…………………………………………………………3功能设计2.2...................................................4系统运行环境与开发工具3 .系统实施 (4)3.1……………………………………………………………4源程序3.2......................................................12 . 系统测试及部分截图三、综合设计总结或结论 (13)四、参考文献 (13)..《文本编辑器》一、综合设计的目的与要求要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统的练习。

二、综合设计正文1 系统分析1.1系统开发背景、开发范围、建设目标与必要性随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。

1.2需求分析程序设计主要分为两大部分:简单GUI设计和程序功能设计。

通过GUI设计实现图形用户界面,提供图形菜单,方便用户操作。

使用Java语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出的程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

制作一个文本编辑器java课程设计报

《Java语言程序设计》
课程设计报告
设计题目:制作一个文本编辑器
分院:电信分院
班级:
姓名:
学号:
指导教师:黄建华
实验地点:三教机六
课设时间: -12-20—— -12-25
二OO九年十二月二十五日
《Java语言程序设计课程设计》
目录
一、设计思路 (2)
二、设计过程 (3)
三、测试结果 (12)
四、心得体会 (13)
五、程序代码 (14)
一、设计思路
(一)设计概念
要制作一个文本编辑器,首先得理清思路,要做一个什么样的文本编辑器,做成的编辑器要求要实现哪些功能,要实现这些功能分别需要用到什么方法以及怎样组织编辑器的框架结构等等问题。

现把我的设计思路简要介绍如下:
1、明确设计要求
首先要创立了一个窗体,标题为“×××设计的文本编辑器”,设计要求是要编辑文件和编辑这两个菜单项,要求在文件菜单项上添加新建、打开、保存、退出四个下拉子菜单,要求当用户单击新建时就能够新建一个空白文档;当单击打开时能够从已有的目录下打开需要打开的文本文件,在原有文件中能够选择要打开的文件;当单击保存时能够出现保存的路径,选择自己要保存到的路径将文件保存到指定的文件夹中;单击退出菜单时退出文件的下拉菜单。

在编辑菜单下的子菜单复制,能够进行对文本的复制。

在文本区内要求当单击鼠标右键时能够弹出菜单,要求有两个子菜单为复制和字体,经过单击字体菜单能够实现对字体改变。

而且在窗体的右上方有三个按钮能够实现最小化、最大化、和关闭。

而且用户也能够根据自己的需要改变窗体的大小。

2、确定设计思路即设计步骤(必须想到要用到哪几个方面的程
序、包、方法、以及基本的程序语言)
(1)创立一个窗体,包括构造一个文本域为编辑器各种功能的实现提供一个伸展平台;
(2)新建一个空的菜单条,然后添加菜单项(文件菜单和编辑菜单);
(3)设计程序在菜单项下添加子菜单,文本菜单对应新建、打开、保存和退出,编辑菜单包括的子菜单为复制和粘贴;
(4)添加右键快捷弹出式菜单,包括复制、字体等菜单项。

3、上两步都完成以后,就进入程序的检测运行阶段即所谓的编译运行,看是否符合设计要求,是否达到理想中的那种效果,在测验阶段,要一步一步完善自己的作品直至真正意义上的完成整个设计过程。

(二)流程图。

相关文档
最新文档