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

上传人:b****5 文档编号:8292701 上传时间:2023-01-30 格式:DOCX 页数:22 大小:227.68KB
下载 相关 举报
制作一个文本编辑器java课程设计报告.docx_第1页
第1页 / 共22页
制作一个文本编辑器java课程设计报告.docx_第2页
第2页 / 共22页
制作一个文本编辑器java课程设计报告.docx_第3页
第3页 / 共22页
制作一个文本编辑器java课程设计报告.docx_第4页
第4页 / 共22页
制作一个文本编辑器java课程设计报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

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

《制作一个文本编辑器java课程设计报告.docx》由会员分享,可在线阅读,更多相关《制作一个文本编辑器java课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。

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

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

 

《Java语言程序设计》

课程设计报告

 

设计题目:

制作一个文本编辑器

分院:

电信分院

班级:

姓名:

学号:

指导教师:

黄建华

实验地点:

三教机六

课设时间:

2009-12-20——2009-12-25

二OO九年十二月二十五日

 

《Java语言程序设计课程设计》

 目录

一、设计思路…………………………………………………………………2

二、设计过程…………………………………………………………………3

三、测试结果…………………………………………………………………12

四、心得体会…………………………………………………………………13

五、程序代码…………………………………………………………………14

 

 

一、设计思路

(一)设计概念

要制作一个文本编辑器,首先得理清思路,要做一个什么样的文本编辑器,做成的编辑器要求要实现哪些功能,要实现这些功能分别需要用到什么方法以及怎样组织编辑器的框架结构等等问题。

现把我的设计思路简要介绍如下:

1、明确设计要求

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

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

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

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

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

2、确定设计思路即设计步骤(必须想到要用到哪几个方面的程序、包、方法、以及基本的程序语言)

(1)创建一个窗体,包括构造一个文本域为编辑器各种功能的实现提供一个伸展平台;

(2)新建一个空的菜单条,然后添加菜单项(文件菜单和编辑菜单);

(3)设计程序在菜单项下添加子菜单,文本菜单对应新建、打开、保存和退出,编辑菜单包括的子菜单为复制和粘贴;

(4)添加右键快捷弹出式菜单,包括复制、字体等菜单项。

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

 

(二)流程图

新建

打开

Open

保存

Save

退出

Exit

复制

Copy

字体大小

复制

Copy

粘贴

Paste

字体颜色

快捷菜单

编辑

Edit

文件

File

空的

菜单条

文本域

TextArea

窗体

Frame

主方法

Main()

公共类

Bjq

粘贴

Paste

 

二、设计过程

1、功能介绍:

通过记事本编辑器可以实现新建、打开、保存文本文件、以及退出;同时也有对字体

的改变、对字的颜色的改变以及复制、粘贴等功能,根据自己的意愿改变窗体,实行对其的最小化、最大化、关闭等等。

2、设计步骤:

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.*;

importjava.awt.print.*;

importjava.awt.datatransfer.*;

importjava.applet.*;

importjavax.swing.JColorChooser;

importjavax.swing.event.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

importjavax.swing.text.*;

importjavax.swing.colorchooser.*;

引用两个包:

javax、java、以及对应的方法

(1)首先创建一个公共的类名为Bjq

为文本编辑器创建一个窗体并设计标题为:

08通信

(2)班骆玉春设计的文本编辑器Bjq;并创建编辑器的文本域,具体代码如下;

//设计标题

JFramef=newJFrame();

f.setTitle("08通信

(2)班骆玉春设计的文本编辑器Bjq");

//构造文本域

JTextAreaaa=newJTextArea("",20,50);//构造一个文本域

(2)创建一个空的菜单条并添加两个菜单项(文件、编辑)

JMenuBarcc=newJMenuBar();//创建一个空的菜单条

//创建"文件"和"编辑"这两个菜单项

JMenufile=newJMenu("文件");

JMenuedit=newJMenu("编辑");

(3)先设计一个匿名部类,为文件、编辑菜单添加新建和其他下拉子菜单

“新建”子菜单:

创建OpenL类实现了ActionLister并实现其读取文件的功能以匿名部类的形式创建菜单监听器这些代码的作用是实现对新建、保存、打开、退出、复制进行监听,

//实现文本文件的打开功能----即文件菜单下的子菜单"打开"

classopenLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

JFileChooserfc=newJFileChooser();

intreturnVal=fc.showDialog(Bjq.this,"打开");

“退出”子菜单:

//实现文本文件的退出功能----即文件菜单下的子菜单"退出"

classexitLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

System.exit(0);

}

}

//新建、保存、复制、粘贴与之相类似就不做说明

(4)右键快捷菜单的字体子菜单的创建:

字体包括字体的大小和字体的颜色等等

//设计字体大小

classfontsizeimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

intn;

Stringno;

no=JOptionPane.showInputDialog("请输入你想要的字体大小:

");

n=Integer.parseInt(no);

Fontft;

ft=newFont("",Font.BOLD,n);

aa.setFont(ft);

}

}通过用户输入所需的字号的大小来调节字体大小以满足不同需要,

//设计字体颜色

classfontcolorimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Colora=newColor(0,192,191);

JColorChooserc=newJColorChooser();

a=c.showDialog(Bjq.this,"颜色选择框",a);

aa.setForeground(a);

}

}

(5)为鼠标创建监听器。

用于用鼠标点击右键时出现快捷菜单:

复制、粘贴、字体大小、字体颜色。

popup=newJPopupMenu();

JMenuItemcopy=newJMenuItem("复制");

JMenuItemword=newJMenuItem("字体");

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmousePressed(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

当单击右键时可以弹出复制、粘贴和字体菜单,实现功能,实现鼠标的控制来完成弹出菜单的操作。

(6)为窗体添加监听器

当用户按关闭按钮时就可以将窗口关闭,实现了对窗体的控制。

//关闭窗口

protectedstaticfinalclassappCloseLextendsWindowAdapter{

publicvoidwindowClosing(WindowEvente){

System.exit(0);}

f.setSize(800,500);

f.setVisible(true);

(这两个代码是设计窗体的的大小和窗口的可见性。

(7)设计main方法:

为整个程序的开始提供了入口,

publicstaticvoidmain(Stringargs[]){

JFramef=newJFrame();

Bjqapplet=newBjq();

f.setTitle("08通信

(2)班骆玉春设计的文本编辑器Bjq");

f.setBackground(Color.red);

f.getContentPane().add(applet,BorderLayout.CENTER);

f.addWindowListener(newappCloseL());

f.setSize(800,500);

f.setVisible(true);

f.pack();

}

为静态的主函数。

 

三、测试效果

1:

两个菜单项:

文件和编辑的截图:

2:

编辑菜单以及子菜单的截图:

 

3:

右键弹出快捷菜单的截图:

4:

新建并通过快捷键复制和设置字体颜色为红色的截图:

5:

保存文件并从保存到的目录下打开文件的截图:

 

6:

打开其他目录下的文件的截图:

 

7:

设置字体的大小和颜色的截图:

四、设计体会

Java语言是很神奇的一门课程,我喜欢编程。

喜欢最后编完的一刹那的成功,自从

我进了学校选择了通信专业后就更加喜欢了,更是备感Java的重要性,天天接触Java时,

越来越着迷于它。

尤其是进行课程设计,我更加深刻体会到了Java的诡异,无法掌控,最

后的程序虽没有实现所有功能,但也可以运行了,这次课程设计中我独立完成了程序的绝大

多数部分,很开心。

不过有太多不会,总是蒙一些东西。

有些一知半解的东西还是不了解,

有些东西是会用了,但对其工作原理却很模糊。

这些都是以后在学Java用Java的路上需

要解决的,Java的魅力真的让人着迷。

在课程设计的过程我遇到了好多的麻烦,有些是自己的马虎,有些也是因为程序太长

有时会出一些小的问题,都是自己不应该发生的。

但有些是不可以避免的啊,所以说我们在

进行Java课程设计的时候要认真仔细不要只图快,要认真每一个环节的输入,否则会给我

们带来许多不必要的麻烦,因此要想做好一个好的完整的Java程序一定要有足够的耐心,

只有这样你才会有好的结果,才会感觉到成功的喜悦,理解到认真和粗心的后果。

总之,这次设计还是教了我很多,包括做人的道理,以及一些在平时生活中不可能遇

见的一些问题,使我领略到一些人生道理,这些是在现实生活中难以解决的,下学期就要考

二级,很想学好计算机,更想把Java掌握的更加熟练,因为它总能给我意外的收获,使我

对人生有新的认识,让我感受到最后成功那一刻的美妙、开心!

结语就用:

“Java!

”结束吧!

是她给了我对计算机的进一步了解,我更加热爱

学习她了。

 

附:

源程序代码

//Bjq.java

importjava.awt.*;

importjava.awt.print.*;

importjava.awt.datatransfer.*;

importjava.applet.*;

importjavax.swing.JColorChooser;

importjavax.swing.event.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

importjavax.swing.text.*;

importjavax.swing.colorchooser.*;

publicclassBjqextendsJPanel{

privateJPopupMenupopupMenu=newJPopupMenu();

JTextAreaaa=newJTextArea("",20,50);//构造一个文本域

JScrollPanebb=newJScrollPane(aa);

JMenuBarcc=newJMenuBar();//创建一个空的菜单条

JMenufile=newJMenu("文件");

//创建"文件"和"编辑"这两个菜单项

JMenuedit=newJMenu("编辑");

//菜单容

JMenuItemdd;

//实例化剪切板

Clipboardclipbd=getToolkit().getSystemClipboard();

///////

JMenufileMenu;

JPopupMenujPopupMenuOne;

JMenuItemopenFile,closeFile,exit;

JRadioButtonMenuItemcopyFile,pasteFile;

ButtonGroupbuttonGroupOne;

publicBjq(){

//新建一个部类

classnewLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

aa.setDocument(newPlainDocument());

}

}

//实现文本文件的打开功能----即文件菜单下的子菜单"打开"

classopenLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

JFileChooserfc=newJFileChooser();

intreturnVal=fc.showDialog(Bjq.this,"打开");

if(returnVal==JFileChooser.APPROVE_OPTION){

Stringfile=fc.getSelectedFile().getPath();

if(file==null){

return;

}

//读取文件

try{

Readerin=newFileReader(file);

char[]buff=newchar[4096];

intnch;

while((nch=in.read(buff,0,buff.length))!

=-1){

aa.setDocument(newPlainDocument());

aa.append(newString(buff,0,nch));

}

}catch(IOExceptionio){

System.err.println("IOException:

"+io.getMessage());

}

}else{

return;

}

}

}

//实现文本文件的保存功能----即文件菜单下的子菜单"保存"

classsaveLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

JFileChooserfc=newJFileChooser();

intreturnVal=fc.showSaveDialog(Bjq.this);

if(returnVal==JFileChooser.APPROVE_OPTION){

Stringsavefile=fc.getSelectedFile().getPath();

if(savefile==null){

return;

}else{

StringdocToSave=aa.getText();

if(docToSave!

=null){

FileOutputStreamfstrm=null;

BufferedOutputStreamostrm=null;

try{

fstrm=newFileOutputStream(savefile);

ostrm=newBufferedOutputStream(fstrm);

byte[]bytes=null;

try{

bytes=docToSave.getBytes();

}catch(Exceptione1){

e1.printStackTrace();

}

ostrm.write(bytes);

}catch(IOExceptionio){

System.err.println("IOException:

"

+io.getMessage());

}finally{

try{

ostrm.flush();

fstrm.close();

ostrm.close();

}catch(IOExceptionioe){

System.err.println("IOException:

"

+ioe.getMessage());

}

}

}

}

}else{

return;

}

}

}

//实现文本文件的退出功能----即文件菜单下的子菜单"退出"

classexitLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

System.exit(0);

}

}

//实现文本文件的粘贴功能----即编辑菜单下的子菜单"粘贴"

classcopyLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Stringselection=aa.getSelectedText();

StringSelectionclipString=newStringSelection(selection);

clipbd.setContents(clipString,clipString);

}

}

//粘贴

classpasteLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

TransferableclipData=clipbd.getContents(Bjq.this);

try{

StringclipString=(String)clipData

.getTransferData(DataFlavor.stringFlavor);

aa.replaceRange(clipString,aa.getSelectionStart(),aa

.getSelectionEnd());

}catch(Exceptionex){

}

}

}

//设计字体大小

classfontsizeimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

intn;

Stringno;

no=JOptionPane.showInputDialog("请输入你想要的字体大小:

");

n=Integer.parseInt(no);

Fontft;

ft=newFont("",Font.BOLD,n);

aa.setFont(ft);

}

}

//设计字体颜色

classfontcolorimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Colora=newColor(0,192,191);

JColorChooserc=newJColorChooser();

a=c.showDialog(Bjq.this,"颜色选择框",a);

aa.setForeground(a);

}

}

//注册一个事件监听器

classjtaLimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

}

}

//

//definepopmenu定

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

当前位置:首页 > PPT模板 > 自然景观

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

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