JAVA课程设计报告-文字编辑器设计.doc_第1页
JAVA课程设计报告-文字编辑器设计.doc_第2页
JAVA课程设计报告-文字编辑器设计.doc_第3页
JAVA课程设计报告-文字编辑器设计.doc_第4页
JAVA课程设计报告-文字编辑器设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java课程设计报告课程设计题目: 文字编辑器设计 院(系) 专业班级: 08信计(1)班 学生姓名: 学生学号: 指导老师: 目录一、 设计思想 1二、 设计过程 1三、 测试效果(附:截图) 2四、 制作体会五、 程序代码 1 设计思想 该报告中的程序是使用java程序编写的,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,改变字体大小、颜色等功能。与现在网络各种文档编辑器的设计思想有所不同。虽然网络上很多软件也是功能应有尽有,有的能改变字体,有的能改变字体颜色,但是,这些软件有存在各种各样的瑕疵或问题:有的文件体积相对于一般的编辑来说太大,有的功能太繁杂,使用者一时难以掌握。对于我们日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。所以本程序设计就是依照这样一种需要用现在最流行的java语言设计了一个简单的记事本程序。 2 设计过程在本程序设计过程中,首先参照了windows操作系统的记事本工具,然后构思自己要编写的模板布局,最后动手制作!主要是通过一步一步的添加新的功能从而把整个设计所需要的功能都完整的体现出来。在本程序中,设计了一个菜单栏和文本内容区,程序设计过程中用到了jscrollpane jmenu,jfilechooser等。jmenu是用来制作菜单的,菜单包括“文件”“编辑”“格式”。为了加入颜色的设置,所以加了一个jcolorchooser组件。程序还运用了javax swing和事件监听者,在设计中不断运行改进程序,直到程序所需所有功能都运行出来,在编译和运行的时候出现一些问题,通过老师指导、同学帮助、网上求助都解决了!3 测试效果 下面的截图是通过不断添加java语句段,运行所显示的功能!效果如图所示: 4 制作体会通过java练习实战,我对java程序设计有了新的认识和理解,巩固了我的java基础知识,加深了对java的深刻认识。 /xie.javaimport java.awt.*;import java.applet.*;import java.awt.event.*;import java.awt.print.*;import java.awt.datatransfer.*;import java.io.*;import javax.swing.*;import javax.swing.jcolorchooser;import javax.swing.event.*;import javax.swing.text.*;import javax.swing.colorchooser.*;public class xie extends jpanel private jpopupmenu popupmenu = new jpopupmenu();/ 变量定义jtextarea jta = new jtextarea(, 24, 40);jscrollpane jsp = new jscrollpane(jta);/ 菜单条jmenubar jmb = new jmenubar();jmenu file = new jmenu(文件);jmenu edit = new jmenu(编辑);jmenu geshi = new jmenu(格式);/ 菜单内容jmenuitem jmi;/ 实例化剪切板clipboard clipbd = gettoolkit().getsystemclipboard();/jmenu filemenu; jpopupmenu jpopupmenuone; jmenuitem openfile,closefile,exit; jradiobuttonmenuitem copyfile,pastefile; buttongroup buttongroupone; public xie() /内部类 class newl implements actionlistener public void actionperformed(actionevent e) jta.setdocument(new plaindocument(); / 打开功能class openl implements actionlistener public void actionperformed(actionevent e) jfilechooser fc = new jfilechooser();int returnval = fc.showdialog(xie.this, 打开);if (returnval = jfilechooser.approve_option) string file = fc.getselectedfile().getpath();if (file = null) return;/ 读取文件try reader in = new filereader(file);char buff = new char4096;int nch;while (nch = in.read(buff, 0, buff.length) != -1) jta.setdocument(new plaindocument();jta.append(new string(buff, 0, nch); catch (ioexception io) system.err.println(ioexception: + io.getmessage(); else return;/ 保存文件class savel implements actionlistener public void actionperformed(actionevent e) jfilechooser fc = new jfilechooser();int returnval = fc.showsavedialog(xie.this);if (returnval = jfilechooser.approve_option) string savefile = fc.getselectedfile().getpath();if (savefile = null) return; else string doctosave = jta.gettext();if (doctosave != null) fileoutputstream fstrm = null;bufferedoutputstream ostrm = null;try fstrm = new fileoutputstream(savefile);ostrm = new bufferedoutputstream(fstrm);byte bytes = null;try bytes = doctosave.getbytes(); catch (exception e1) e1.printstacktrace();ostrm.write(bytes); catch (ioexception io) system.err.println(ioexception: + io.getmessage(); finally try ostrm.flush();fstrm.close();ostrm.close(); catch (ioexception ioe) system.err.println(ioexception: + ioe.getmessage(); else return;/ 退出class exitl implements actionlistener public void actionperformed(actionevent e) system.exit(0);/ 复制class copyl implements actionlistener public void actionperformed(actionevent e) string selection = jta.getselectedtext();stringselection clipstring = new stringselection(selection);clipbd.setcontents(clipstring, clipstring);/ 粘贴class pastel implements actionlistener public void actionperformed(actionevent e) transferable clipdata = clipbd.getcontents(xie.this);try string clipstring = (string) clipdata.gettransferdata(dataflavor.stringflavor);jta.replacerange(clipstring, jta.getselectionstart(), jta.getselectionend(); catch (exception ex) / 字号class fontsize implements actionlistener public void actionperformed(actionevent e) int n;string no;no=joptionpane.showinputdialog(输入一个数字:);n=integer.parseint(no);font ft; ft=new font(,font.bold,n);jta.setfont(ft);/ 字体颜色class fontcolor implements actionlistener public void actionperformed(actionevent e) color a=new color(0,192,191); jcolorchooser c=new jcolorchooser(); a=c.showdialog(xie.this, 颜色选择框,a);jta.setforeground(a); / 事件监听class jtal implements actionlistener public void actionperformed(actionevent e) /define popmenu 定义弹出菜单 jmenuitem cut = new jmenuitem(粘贴(p); jmenuitem fontsize = new jmenuitem(字号(f); jmenuitem fontcolor = new jmenuitem(字体颜色(n);jmenuitem copy = new jmenuitem(复制(c); popupmenu.add(copy); copy.addactionlistener(new copyl(); popupmenu.add(cut); cut.addactionlistener(new pastel(); popupmenu.add(fontsize); fontsize.addactionlistener(new fontsize(); popupmenu.add(fontcolor); fontcolor.addactionlistener(new fontcolor(); / jta.addmouselistener(new mouseadapter() public void mousepressed(mouseevent e)checkfortriggerevent(e); public void mousereleased(mouseevent e)checkfortriggerevent(e); private void checkfortriggerevent(mouseevent e) if(e.ispopuptrigger() popupmenu.show(e.getcomponent(),e.getx(),e.gety(); ); /文本区添加快捷菜单/ 快捷键设置file.add(jmi = new jmenuitem(新建, keyevent.vk_n);jmi.addactionlistener(new newl();file.add(jmi = new jmenuitem(打开, keyevent.vk_o);jmi.addactionlistener(new openl();file.add(jmi = new jmenuitem(保存, keyevent.vk_s);jmi.addactionlistener(new savel();file.add(jmi = new jmenuitem(退出, keyevent.vk_x);jmi.addactionlistener(new exitl();edit.add(jmi = new jmenuitem(复制, keyevent.vk_c);jmi.addactionlistener(new copyl();edit.add(jmi = new jmenuitem(粘帖, keyevent.vk_p);jmi.addactionlistener(new pastel();geshi.add(jmi = new jmenuitem(字号, keyevent.vk_f);jmi.addactionlistener(new fontsize();geshi.add(jmi = new jmenuitem(颜色, keyevent.vk_n);jmi.addactionlistener(new fontcolor();/ 设置页面布局风格setlayout(new borderlayout();file.setmnemonic(keyevent.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论