Java课程设计--文本编辑器

Java课程设计--文本编辑器
Java课程设计--文本编辑器

淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 选题名称: 姓 名: 专业班级: 系 (院): 设计时间: 设计地点:
面向对象课程设计
文本编辑器的设计与实现
俞凯 学 号: 中新软 111 国际学院
2013.6.17~2013.6.30 软件实验室、教室
指导教师评语:
成绩:
签名:
年月日
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

1.课程设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较 全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生 的应用能力。
2.课程设计任务与要求:
2.1 文本编辑器的设计与实现:
设计一个类似于 Windows 记事本(Notepad)的 Java 程序。可以打开、新建、保存一个文本文件;对选中的文 本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等); 在文本中能够插入对象。
2.2 设计要求:
课程设计可选用 Eclipse、JBuilder、NetBeans 等作为开发平台以提高开发效率,通过资料查阅和学习尽可 能熟练掌握其中一种集成开发环境。
认真完成需求分析,建议采用 UML 建模技术进行系统的分析设计,在画出系统用例图和类图,并将 UML 图复 制到设计报告中。认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、设计 说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。
通过这次设计,要求掌握以下内容: 1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2) 类、包、接口的定义与使用 3) 常用工具类与算法的实现(数组、向量、字符串、链表) 4) java.awt、javax.swing 中常用标准 GUI 组件及相应的事件处理 5) Java 的异常处理机制 6) Java 的数据库连接技术 7) Java 的多线程技术与动画制作 8) Java 的网络编程
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
3.课程设计说明书
第 3 页,共 25 页
1、 需求分析:
简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘 中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操 作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查 看等功能
2、概要设计:
(一)其基本功能包括:
① 基本的文本操作功能。包括新建,保存,打开,保存。
② 基本的编辑功能。包括复制,剪贴,粘贴。
③ 基本的格式功能,背景。
④ 简单的帮助,关于主题。
(二)主要的组件包括:
文本编辑器模块
① 基本的 Frame 框架;
② 菜单; ③ 打开文件对话框;
④ 保存文件对话框;
⑤ 颜色对话框; ⑥ Choice 下拉列表,运来实现字体设置; ⑦ 简单的帮助框架。

文 件 打 开 与 保 存
变 更 面 板 颜 色
字 体 的 设 置
形 和 字 体 大 小 的 设
剪 切 复 制 粘 贴

帮 助 中 【 关 于 主 题 】
(三)设计流程示意图

建 立 基 本 框 架
添 加 编 辑 区
添 加 菜 单
添 加 对 话 框
完 善 菜 单 系 统
建 立 辑下 文拉 字列 表 编
立 框 架 实 现 简 单 帮

3、详细设计:
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

1) 文件打开与保存对话框 filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE); filedialog_save.setVisible(false); filedialog_load=new FileDialog(this,"保存文件对话框",FileDialog.LOAD); filedialog_load.setVisible(false); filedialog_save.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_save.setVisible(false); } }); filedialog_load.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_load.setVisible(false); } });
public void actionPerformed(ActionEvent e) { if(e.getSource()==itemSave) { filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) { try {File file=new File(filedialog_save.getDirectory(), filedialog_save.getFile()); tofile=new FileWriter(file); out=new BufferedWriter(tofile); out.write(area.getText(),0,(area.getText()).length());
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 5 页,共 25 页
out.close(); tofile.close(); } catch(IOException e1) {} } } else if(e.getSource()==itemLoad) { filedialog_load.setVisible(true); area.setText(null); String s; if(filedialog_load.getFile()!=null) { try{File file=new
File(filedialog_load.getDirectory(), filedialog_load.getFile()); file_reader=new FileReader(file); in=new BufferedReader(file_reader); while((s=in.readLine())!=null) area.append(s+'\n'); in.close(); file_reader.close(); } catch(IOException e1) {} } } } 文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在 public void actionPerformed(ActionEvent e)里分别用 FileWriter()和 FileReader()方法实现保存和打开。
2) 调用颜色对话框
else if(e.getSource()==item5) {
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground()); if(newColor!=null) area.setBackground(newColor); } 文本编辑器要实现背景功能可以用 javax.swing 包中的 JColorChooser 类的静态方法。Pubic static Color showDialog(Component,String title,Color initialColor),其中参数 Component 指定对话框所依赖的组件, 即文本编辑器中的文本区 area,title 指定对话框的标题“调色板”,initialColor 指定对话框返回的初始颜色, 即对话框消失后,返回默认值。
3) 建立 Choice 下拉列表实现对字体的设置
Choice list; GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName[]=ge.getAvailableFontFamilyNames(); public void itemStateChanged(ItemEvent e) { String name=list.getSelectedItem(); Font f=new Font(name,Font.PLAIN,15); area.setFont(f); } 文 本 编 辑 器 要 实 现 对 字 体 的 设 置 , 我 选 用 了 GraphicsEnvironment 对 象 调 用 String[] getAvailableFontFamilyNames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。
4)字形,字体大小部分 else if(e.getSource()==item8) //设置字形(常规,倾斜,加粗) { Font font=area.getFont(); int style=font.getStyle(); style=style^0; area.setFont(new Font("",style,font.getSize())); } else if(e.getSource()==item9) { Font font=area.getFont();
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 7 页,共 25 页
int style=font.getStyle();
style=style^2;
area.setFont(new Font("",style,font.getSize()));
}
else if(e.getSource()==item10)
{
Font font=area.getFont();
int style=font.getStyle();
style=style^1;
area.setFont(new Font("",style,font.getSize()));
} else if(e.getSource()==item11)
//设置字体大小
{
Font font=area.getFont();
int style=font.getStyle();
area.setFont(new Font(font.getName(),style,12));
}
else if(e.getSource()==item12)
{
Font font=area.getFont();
int style=font.getStyle();
area.setFont(new Font(font.getName(),style,24));
}
else if(e.getSource()==item13)
{
Font font=area.getFont();
int style=font.getStyle();
area.setFont(new Font(font.getName(),style,36));
}
5)剪切,复制,粘贴部分 public void changedUpdate(DocumentEvent e)
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

{ String s=area.getText(); } public void removeUpdate(DocumentEvent e) { changedUpdate(e); } public void insertUpdate(DocumentEvent e) { changedUpdate(e); } public void actionPerformed(ActionEvent e) {
else if(e.getSource()==item2) { area.cut(); } else if(e.getSource()==item3) { area.copy(); } else if(e.getSource()==item4) { area.paste(); }
} 文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理 JTextArea 的 DocumentEvent 事件,通过 area.cut(), area.copy(),area.paste()方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。
6) 帮助中关于主题部分 else if(e.getSource()==item6) { zhuti zt=new zhuti();
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 9 页,共 25 页
} 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(); } } } 对于帮助中关于主题部分的实现,我另构建了一个 Frame 框架,主要是由一个标签及一个按钮构成,由标签输出 “这是一个简单的文本编辑器!”,按钮用 dispose()方法实现退出功能。
7)类图
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

4.课程设计成果
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 11 页,共 25 页
1、调试分析:
(1)关于打开和保存我运用了文件对话框, filedialog_save 和 filedialog_load 以及文件输入输出流来实 现,新建功能我选用了 area.setText(null)方法.
(2) 对 于 剪 贴 , 粘 贴 , 复 制 的 实 现 则 用 public void removeUpdate(DocumentEvent e) 及 public void insertUpdate(DocumentEvent e).
(3) 背 景 的 运 用 也 是 调 用 了 颜 色 对 话 框 , 需 引 用 import javax.swing.JcolorChooser 包 用 Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground())方法;
(4) 至 于 字 体 功 能 的 实 现 , 则 是 先 创 建 一 个 下 拉 列 表 Choice list, 再 实 现 对 它 的 监 听 list.addItemListener(this), 最后用 public void itemStateChanged(ItemEvent e)方法实现,需注意的是这种 方法的实现只对 javax.swing 包中的组件有效,对于 java.awt 包中的组件,系统则是采取默认的字体名称.
2、用户使用说明:
软硬件要求: 软件方面:Java 开发环境 硬件方面:JDK 软件抑或是 Eclipse 软件对硬件没有很高的要求。
3、测试结果: 图 1:文本编辑器的运行结果:
图 2 文本编辑器中的菜单:
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 13 页,共 25 页
图 3:字体选择下拉列表:
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

图 4:文本编辑器文件对话框(保存文件对话框): 图 5:选择背景颜色对话框:
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
附录(源代码):
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.JColorChooser; import javax.swing.*; import javax.swing.event.*;
第 15 页,共 25 页
class Window extends Frame implements ActionListener,ItemListener,DocumentListener { FileDialog filedialog_save,filedialog_load; MenuBar menubar; Menu menu1,menu2,menu3,menu4,menu5,menu6; MenuItem
itemSave,itemLoad,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15; Choice list; JTextArea area; BufferedReader in; FileReader file_reader; BufferedWriter out; FileWriter tofile; JScrollPane scrollpane; Window(String s) { super(s); setSize(600,400); list=new Choice(); area=new JTextArea();setVisible(true); GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName[]=ge.getAvailableFontFamilyNames(); for(int i=0;i在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

list.add(fontName[i]); } add(list,"North"); add(area,"Center"); list.addItemListener(this); validate(); menubar=new MenuBar();menu1=new Menu("文件"); menu2=new Menu("编辑");menu3=new Menu("格式"); menu4=new Menu("帮助");menu5=new Menu("字形"); menu6=new Menu("字体大小"); itemSave=new MenuItem("保存"); itemLoad=new MenuItem("打开"); item1=new MenuItem("新建"); item2=new MenuItem("剪切"); item3=new MenuItem("复制"); item4=new MenuItem("粘贴"); item5=new MenuItem("背景"); item6=new MenuItem("关于主题"); item7=new MenuItem("退出"); item8=new MenuItem("常规"); item9=new MenuItem("倾斜"); item10=new MenuItem("加粗"); item11=new MenuItem("12"); item12=new MenuItem("24"); item13=new MenuItem("36"); item14=new MenuItem("查找"); item15=new MenuItem("替换"); itemSave.addActionListener(this); itemLoad.addActionListener(this); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this);
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
item5.addActionListener(this); item6.addActionListener(this); item7.addActionListener(this); item8.addActionListener(this); item9.addActionListener(this); item10.addActionListener(this); item11.addActionListener(this); item12.addActionListener(this); item13.addActionListener(this); item14.addActionListener(this); item15.addActionListener(this); (area.getDocument()).addDocumentListener(this); menu1.add(item1);menu1.addSeparator(); menu1.add(itemSave);menu1.addSeparator(); menu1.add(itemLoad);menu1.addSeparator(); menu1.add(item7); menu2.add(item2);menu2.addSeparator(); menu2.add(item3);menu2.addSeparator(); menu2.add(item4);menu2.addSeparator(); menu2.add(item14);menu2.addSeparator(); menu2.add(item15); menu3.add(item5);menu3.addSeparator(); menu3.add(menu5);menu3.addSeparator(); menu3.add(menu6); menu4.add(item6); menu5.add(item8);menu5.addSeparator(); menu5.add(item9);menu5.addSeparator(); menu5.add(item10); menu6.add(item11);menu6.addSeparator(); menu6.add(item12);menu6.addSeparator(); menu6.add(item13); menubar.add(menu1);
第 17 页,共 25 页
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setMenuBar(menubar); filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE); filedialog_save.setVisible(false); filedialog_load=new FileDialog(this,"保存文件对话框",FileDialog.LOAD); filedialog_load.setVisible(false); filedialog_save.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
filedialog_save.setVisible(false); } }); filedialog_load.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_load.setVisible(false); } }); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
setVisible(false);System.exit(0); } }); } public void itemStateChanged(ItemEvent e) { String name=list.getSelectedItem();
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

面向对象课程设计报告
第 19 页,共 25 页
Font f=new Font(name,Font.PLAIN,12); area.setFont(f); } public void changedUpdate(DocumentEvent e) { String s=area.getText();
} public void removeUpdate(DocumentEvent e) { changedUpdate(e); } public void insertUpdate(DocumentEvent e) { changedUpdate(e); } public void actionPerformed(ActionEvent e) {
if(e.getSource()==itemSave) {
filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) { try {File file=new
File(filedialog_save.getDirectory(), filedialog_save.getFile()); tofile=new FileWriter(file); out=new BufferedWriter(tofile); out.write(area.getText(),0,(area.getText()).length()); out.close(); tofile.close(); }
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

catch(IOException e1) {} } } else if(e.getSource()==itemLoad) {
filedialog_load.setVisible(true); area.setText(null); String s; if(filedialog_load.getFile()!=null) { try{File file=new
File(filedialog_load.getDirectory(), filedialog_load.getFile()); file_reader=new FileReader(file); in=new BufferedReader(file_reader); while((s=in.readLine())!=null) area.append(s+'\n'); in.close(); file_reader.close(); } catch(IOException e1) {} } } else if(e.getSource()==item1) { area.setText(null);
} else if(e.getSource()==item2) {
area.cut(); } else if(e.getSource()==item3)
在各种埋地管道的应用过程中,能否达到规定长期使寿命一个关键因素就是铺设质量。而HDPE具有多独特性更加安全

相关主题
相关文档
最新文档