完整版Java毕业课程设计文本编辑器.docx

上传人:b****2 文档编号:18249638 上传时间:2023-04-24 格式:DOCX 页数:25 大小:129.81KB
下载 相关 举报
完整版Java毕业课程设计文本编辑器.docx_第1页
第1页 / 共25页
完整版Java毕业课程设计文本编辑器.docx_第2页
第2页 / 共25页
完整版Java毕业课程设计文本编辑器.docx_第3页
第3页 / 共25页
完整版Java毕业课程设计文本编辑器.docx_第4页
第4页 / 共25页
完整版Java毕业课程设计文本编辑器.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

完整版Java毕业课程设计文本编辑器.docx

《完整版Java毕业课程设计文本编辑器.docx》由会员分享,可在线阅读,更多相关《完整版Java毕业课程设计文本编辑器.docx(25页珍藏版)》请在冰豆网上搜索。

完整版Java毕业课程设计文本编辑器.docx

完整版Java毕业课程设计文本编辑器

淮海工学院计算机工程学院

课程设计报告

设计名称:

面向对象课程设计

选题名称:

文本编辑器的设计与实现

姓名:

俞凯学号:

专业班级:

中新软111

系(院):

国际学院

设计时间:

2013.6.17~2013.6.30

设计地点:

软件实验室、教室

指导教师评语:

签名:

年月日

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的网络编程

3.课程设计说明书

1、需求分析:

简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。

能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。

文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能

2、概要设计:

(一)其基本功能包括:

①基本的文本操作功能。

包括新建,保存,打开,保存。

②基本的编辑功能。

包括复制,剪贴,粘贴。

③基本的格式功能,背景。

④简单的帮助,关于主题。

(二)主要的组件包括:

①基本的Frame框架;

②菜单;

③打开文件对话框;

④保存文件对话框;

⑤颜色对话框;

⑥Choice下拉列表,运来实现字体设置;

⑦简单的帮助框架。

(3)设计流程示意图

3、详细设计:

1)文件打开与保存对话框

filedialog_save=newFileDialog(this,"保存文件对话框",FileDialog.SAVE);

filedialog_save.setVisible(false);

filedialog_load=newFileDialog(this,"保存文件对话框",FileDialog.LOAD);

filedialog_load.setVisible(false);

filedialog_save.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

filedialog_save.setVisible(false);

}

});

filedialog_load.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

filedialog_load.setVisible(false);

}

});

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==itemSave)

{

filedialog_save.setVisible(true);

if(filedialog_save.getFile()!

=null)

{

try{Filefile=new

File(filedialog_save.getDirectory(),

filedialog_save.getFile());

tofile=newFileWriter(file);

out=newBufferedWriter(tofile);

out.write(area.getText(),0,(area.getText()).length());

out.close();

tofile.close();

}

catch(IOExceptione1){}

}

}

elseif(e.getSource()==itemLoad)

{

filedialog_load.setVisible(true);

area.setText(null);

Strings;

if(filedialog_load.getFile()!

=null)

{

try{Filefile=new

File(filedialog_load.getDirectory(),

filedialog_load.getFile());

file_reader=newFileReader(file);

in=newBufferedReader(file_reader);

while((s=in.readLine())!

=null)

area.append(s+'\n');

in.close();

file_reader.close();

}

catch(IOExceptione1){}

}

}

}

文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。

先建立打开和保存对话框,在publicvoidactionPerformed(ActionEvente)里分别用FileWriter()和FileReader()方法实现保存和打开。

2)调用颜色对话框

elseif(e.getSource()==item5)

{

ColornewColor=JColorChooser.showDialog(this,"调色板",area.getBackground());

if(newColor!

=null)

area.setBackground(newColor);

}

文本编辑器要实现背景功能可以用javax.swing包中的JColorChooser类的静态方法。

PubicstaticColorshowDialog(Component,Stringtitle,ColorinitialColor),其中参数Component指定对话框所依赖的组件,即文本编辑器中的文本区area,title指定对话框的标题“调色板”,initialColor指定对话框返回的初始颜色,即对话框消失后,返回默认值。

3)建立Choice下拉列表实现对字体的设置

Choicelist;

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

StringfontName[]=ge.getAvailableFontFamilyNames();

publicvoiditemStateChanged(ItemEvente)

{

Stringname=list.getSelectedItem();

Fontf=newFont(name,Font.PLAIN,15);

area.setFont(f);

}

文本编辑器要实现对字体的设置,我选用了GraphicsEnvironment对象调用String[]getAvailableFontFamilyNames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。

4)字形,字体大小部分

elseif(e.getSource()==item8)设置字形(常规,倾斜,加粗)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^0;

area.setFont(newFont("",style,font.getSize()));

}

elseif(e.getSource()==item9)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^2;

area.setFont(newFont("",style,font.getSize()));

}

elseif(e.getSource()==item10)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^1;

area.setFont(newFont("",style,font.getSize()));

}

elseif(e.getSource()==item11)设置字体大小

{

Fontfont=area.getFont();

intstyle=font.getStyle();

area.setFont(newFont(font.getName(),style,12));

}

elseif(e.getSource()==item12)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

area.setFont(newFont(font.getName(),style,24));

}

elseif(e.getSource()==item13)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

area.setFont(newFont(font.getName(),style,36));

}

5)剪切,复制,粘贴部分

publicvoidchangedUpdate(DocumentEvente)

{

Strings=area.getText();

}

publicvoidremoveUpdate(DocumentEvente)

{

changedUpdate(e);

}

publicvoidinsertUpdate(DocumentEvente)

{

changedUpdate(e);

}

publicvoidactionPerformed(ActionEvente)

{

elseif(e.getSource()==item2)

{

area.cut();

}

elseif(e.getSource()==item3)

{

area.copy();

}

elseif(e.getSource()==item4)

{

area.paste();

}

}

文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理JTextArea的DocumentEvent事件,通过area.cut(),area.copy(),area.paste()方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。

6)帮助中关于主题部分

elseif(e.getSource()==item6)

{

zhutizt=newzhuti();

}

classzhutiextendsFrameimplementsActionListener

{

Buttonbtn;

Labellab;

zhuti()

{

setLayout(null);

btn=newButton("确定");

lab=newLabel("这是一个简单的文本编辑器!

");

add(btn);

add(lab);

btn.addActionListener(this);

setBounds(150);

setVisible(true);

lab.setBounds(20);

lab.setFont(newFont("楷体",Font.BOLD,16));

lab.setBackground(Color.cyan);

btn.setBounds(0);

btn.setBackground(Color.cyan);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==btn)

{

dispose();

}

}

}

对于帮助中关于主题部分的实现,我另构建了一个Frame框架,主要是由一个标签及一个按钮构成,由标签输出“这是一个简单的文本编辑器!

”,按钮用dispose()方法实现退出功能。

7)类图

4.课程设计成果

1、调试分析:

(1)关于打开和保存我运用了文件对话框,filedialog_save和filedialog_load以及文件输入输出流来实现,新建功能我选用了area.setText(null)方法.

(2)对于剪贴,粘贴,复制的实现则用publicvoidremoveUpdate(DocumentEvente)及publicvoidinsertUpdate(DocumentEvente).

(3)背景的运用也是调用了颜色对话框,需引用importjavax.swing.JcolorChooser包用ColornewColor=JColorChooser.showDialog(this,"调色板",area.getBackground())方法;

(4)至于字体功能的实现,则是先创建一个下拉列表Choicelist,再实现对它的监听list.addItemListener(this),最后用publicvoiditemStateChanged(ItemEvente)方法实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称.

2、用户使用说明:

软硬件要求:

软件方面:

Java开发环境

硬件方面:

JDK软件抑或是Eclipse软件对硬件没有很高的要求。

3、测试结果:

图1:

文本编辑器的运行结果:

图2文本编辑器中的菜单:

图3:

字体选择下拉列表:

图4:

文本编辑器文件对话框(保存文件对话框):

图5:

选择背景颜色对话框:

附录(源代码):

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.JColorChooser;

importjavax.swing.*;

importjavax.swing.event.*;

classWindowextendsFrameimplementsActionListener,ItemListener,DocumentListener

{

FileDialogfiledialog_save,filedialog_load;

MenuBarmenubar;

Menumenu1,menu2,menu3,menu4,menu5,menu6;

MenuItemitemSave,itemLoad,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15;

Choicelist;

JTextAreaarea;

BufferedReaderin;

FileReaderfile_reader;

BufferedWriterout;

FileWritertofile;

JScrollPanescrollpane;

Window(Strings)

{

super(s);

setSize();

list=newChoice();

area=newJTextArea();setVisible(true);

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

StringfontName[]=ge.getAvailableFontFamilyNames();

for(inti=0;i

{

list.add(fontName[i]);

}

add(list,"North");

add(area,"Center");

list.addItemListener(this);

validate();

menubar=newMenuBar();menu1=newMenu("文件");

menu2=newMenu("编辑");menu3=newMenu("格式");

menu4=newMenu("帮助");menu5=newMenu("字形");

menu6=newMenu("字体大小");

itemSave=newMenuItem("保存");

itemLoad=newMenuItem("打开");

item1=newMenuItem("新建");

item2=newMenuItem("剪切");

item3=newMenuItem("复制");

item4=newMenuItem("粘贴");

item5=newMenuItem("背景");

item6=newMenuItem("关于主题");

item7=newMenuItem("退出");

item8=newMenuItem("常规");

item9=newMenuItem("倾斜");

item10=newMenuItem("加粗");

item11=newMenuItem("12");

item12=newMenuItem("24");

item13=newMenuItem("36");

item14=newMenuItem("查找");

item15=newMenuItem("替换");

itemSave.addActionListener(this);

itemLoad.addActionListener(this);

item1.addActionListener(this);

item2.addActionListener(this);

item3.addActionListener(this);

item4.addActionListener(this);

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();

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1