完整版Java毕业课程设计文本编辑器Word文档格式.docx
《完整版Java毕业课程设计文本编辑器Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版Java毕业课程设计文本编辑器Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
![完整版Java毕业课程设计文本编辑器Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/0e4d87c3-9ce6-4efe-a7ce-5f04bf178d22/0e4d87c3-9ce6-4efe-a7ce-5f04bf178d221.gif)
认真按时完成课程设计报告,课程设计报告内容包括:
课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。
通过这次设计,要求掌握以下内容:
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()
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()!
{
try{Filefile=new
File(filedialog_load.getDirectory(),
filedialog_load.getFile());
file_reader=newFileReader(file);
in=newBufferedReader(file_reader);
while((s=in.readLine())!
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!
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)
style=style^2;
elseif(e.getSource()==item10)
intstyle=font.getStyle();
style=style^1;
elseif(e.getSource()==item11)设置字体大小
area.setFont(newFont(font.getName(),style,12));
elseif(e.getSource()==item12)
area.setFont(newFont(font.getName(),style,24));
elseif(e.getSource()==item13)
area.setFont(newFont(font.getName(),style,36));
5)剪切,复制,粘贴部分
publicvoidchangedUpdate(DocumentEvente)
Strings=area.getText();
}
publicvoidremoveUpdate(DocumentEvente)
changedUpdate(e);
publicvoidinsertUpdate(DocumentEvente)
{
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<
fontName.length;
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.add(itemLoad);
menu1.add(item7);
menu2.add(item2);
menu2.addSeparator();
menu2.add(item3);
menu2.add(item4);
menu2.add(item14);
menu2.add(item15);
menu3.add(item5);
menu3.addSeparator();