java简易文本编辑.docx

上传人:b****5 文档编号:3988915 上传时间:2022-11-26 格式:DOCX 页数:13 大小:126.06KB
下载 相关 举报
java简易文本编辑.docx_第1页
第1页 / 共13页
java简易文本编辑.docx_第2页
第2页 / 共13页
java简易文本编辑.docx_第3页
第3页 / 共13页
java简易文本编辑.docx_第4页
第4页 / 共13页
java简易文本编辑.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java简易文本编辑.docx

《java简易文本编辑.docx》由会员分享,可在线阅读,更多相关《java简易文本编辑.docx(13页珍藏版)》请在冰豆网上搜索。

java简易文本编辑.docx

java简易文本编辑

 

JAVA课程设计报告

 

实验名称:

文本编辑器

姓名:

学号:

学院:

专业:

指导老师:

一.需求分析

1.实验题目:

文本编辑器

2.基本要求:

设计一个简易文本编辑器。

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

其他:

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

二.概要设计

本程序有以下几个类:

classMyEditorextendsJFrameimplementsActionListener,MouseListener//主窗口类,实现窗口,文本区监听和鼠标监听

本程序有一下方法:

publicMyEditor()//实现窗口的,位置监听的添加

publicvoidactionPerformed(ActionEventae)//实现对菜单项的操作

publicvoidmousePressed(MouseEvente)//实现鼠标右击时相应的操作

publicstaticvoidmain(String[]args)//创建类

主类是MyEditor,其中主窗口的创建的在主函数里完成的,各弹出窗口及相应的功能是在相应的事件中完成的。

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

 

三.详细设计

1.程序运行流程图:

 

 

2.完整源代码及简要注释

importjavax.swing.*;

importjava.awt.*;

importjava.io.*;

importjava.awt.event.*;

publicclassMyEditextendsJFrameimplementsActionListener,MouseListener{

//定义变量

JMenuItemopen=newJMenuItem("打开"),save=newJMenuItem("保存"),exit=newJMenuItem("退出"),

bg=newJMenuItem("背景颜色"),small=newJMenuItem("小"),middle=newJMenuItem("中"),big=newJMenuItem("大"),

cg=newJMenuItem("倾斜并加粗"),qx=newJMenuItem("倾斜"),jc=newJMenuItem("加粗");

JMenufile=newJMenu("文件"),edit=newJMenu("编辑"),mode=newJMenu("格式"),size=newJMenu("字体大小"),help=newJMenu("帮助");

JMenuBarjmb=newJMenuBar();

JTextAreaarea=newJTextArea();

JPopupMenupm=newJPopupMenu();

JMenuItemcopy=newJMenuItem("复制"),cut=newJMenuItem("剪切"),paste=newJMenuItem("粘贴");

 

publicMyEdit(){

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

}

publicvoidactionPerformed(ActionEventae)

{

if(ae.getSource()==save)

{try{

JFileChooserjfc=newJFileChooser();

intmychoose=jfc.showSaveDialog(this);

if(mychoose==jfc.APPROVE_OPTION)

{

Filefile=jfc.getSelectedFile();

FileOutputStreamfos=newFileOutputStream(file);

byte[]b=area.getText().getBytes();

fos.write(b,0,b.length);

fos.close();}}catch(Exceptione){e.printStackTrace();}

}

elseif(ae.getSource()==open)

{try{

JFileChooserjfc=newJFileChooser();

intmychoose=jfc.showOpenDialog(this);

if(mychoose==jfc.APPROVE_OPTION)

{

Filefile=jfc.getSelectedFile();

FileInputStreamfis=newFileInputStream(file);

byte[]b=newbyte[200];

intlen;

while((len=fis.read(b))!

=-1)

area.append(newString(b,0,len));

fis.close();

}}catch(Exceptione){e.printStackTrace();

}

}

elseif(ae.getSource()==copy)

area.copy();

elseif(ae.getSource()==cut)

area.cut();

elseif(ae.getSource()==paste)

area.paste();

elseif(ae.getSource()==bg)

{

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

if(newColor!

=null)

area.setBackground(newColor);

}

elseif(ae.getSource()==exit)

{

System.exit(0);

}

elseif(ae.getSource()==cg)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^3;

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

}

elseif(ae.getSource()==qx)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^2;

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

}

elseif(ae.getSource()==jc)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

style=style^1;

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

}

elseif(ae.getSource()==small)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

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

}

elseif(ae.getSource()==middle)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

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

}

elseif(ae.getSource()==big)

{

Fontfont=area.getFont();

intstyle=font.getStyle();

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

}

}

publicvoidmouseReleased(MouseEventme){}

publicvoidmouseEntered(MouseEventme){}

publicvoidmouseExited(MouseEventme){}

publicvoidmouseClicked(MouseEventme){}

publicvoidmousePressed(MouseEventme){

if(me.getModifiers()==InputEvent.BUTTON3_MASK)

{pm.show(area,me.getX(),me.getY());}}

//主函数,程序入口

publicstaticvoidmain(String[]args){

newMyEdit()

}

}

3.简要设计思路

首先创建一个窗体,在窗体中添加打开、保存、退出菜单项,实现对文件的操作;其次,在窗体中添加一个文本区,用来显示打开的文件中的内容;还需要添加一个弹出式菜单,包括剪切、复制、粘贴功能,实现对文本区中的内容进行相应的操作。

四.程序截图说明

1.主窗口界面:

该界面有三个菜单和一个文本区,当点击菜单”文件”时,有三个菜单项”打开、关闭、退出”可供做相应的操作,当点击“编辑”时,有“背景颜色、格式、字体大小”三个可操作,三个操作中也有对应的选项和界面,“帮助”菜单没有任何实际操作。

2.文件下的打开界面

点击打开菜单项,可实现对文件的打开。

3.文件下的保存界面

点击保存可实现对文本区的内容进行保存。

4.编辑下的背景颜色界面

在这里可以根据个人喜好改变文本区的背景颜色。

5.编辑下的格式界面

在这里选择相信的格式,文本区的文字便会改变成那个格式。

6.编辑下的字体大小

在这里,选择字体大小,对文本区的字体大小进行改变。

6.文本区中的右键操作

点击鼠标右键,弹出式菜单弹出,点击剪切、复制、粘贴菜单式可实现相应的功能。

五.分析总结:

1.出现问题及解决办法:

其中事件监听时出现了一点问题,使用addMouseListener()对鼠标在文本区中单击时弹出式菜单的显示,开始时总是显示不出来,后来通过查资料、问老师解决出来了。

2.方法优缺点分析:

优点:

界面干净,操作简单,可对任意文件进行编辑。

缺点:

功能较少。

六.致谢:

紧张的课程设计结束了,虽然时间紧迫,但是由于以前做过部分,所以剩下的工作倒是不难,就是要写较多的代码,感谢指导老师前期的指导和提供部分代码以及后期对程序的完善提出的修改意见。

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

当前位置:首页 > 小学教育 > 数学

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

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