java文本编辑器
java课设文本编辑器的设计与实现

淮海工学院计算机工程学院
课程设计报告
设计名称:面向对象课程设计
选题名称:文本编辑器的设计与实现
姓名:学号:
专业班级:
系(院):计算机工程学院
设计时间:2015.6.21~2014.7.4
设计地点:计算机楼机房、教室、宿舍
();
("确定");
("这是一个简单的文本编辑器!");
();
();
();
(200,200,250,150);
();
(20 ,60,220,30);
( ("楷体",16));
();
(100,100,50,30);
();
}
( e)
{
(())
{
();
}
}
}
4.2运行结果显示
如图1:文本编辑器主界面
如图2:文本编辑器文件菜单
如图3:
文本
编辑
器编
辑菜
单
如图4:文本编辑器格式菜单
如图5:文本编辑器帮助菜单
如图6:文本编辑器字体格式和背景
如图7:
文本编。
Java-Web-Office-文档在线编辑

Java-Web-Office-文档在线编辑在当今移动化和云化的时代,办公文档的在线编辑和共享已经成为商业世界的基础要求。
在此背景下,Java Web Office文档在线编辑成为了一个广泛使用的技术。
在本文档中,我们将讨论Java Web Office文档在线编辑的基本原理和使用。
什么是Java Web Office文档在线编辑?Java Web Office文档在线编辑是一种基于Java Web技术和Office文档格式的在线编辑工具。
它允许用户在线编辑各种类型的Office文档,如Word文档、Excel表格、PowerPoint演示等。
它还可以将编辑的结果存储在云端,以便用户可以方便地实现文档的共享和协作编辑。
Java Web Office文档在线编辑的基本原理Java Web Office文档在线编辑的基本原理是将用户编辑的Office文档在服务器端转换为HTML格式,并在用户的浏览器中显示为可编辑网页。
当用户在网页上进行编辑操作时,服务器会将编辑内容保存在数据库中,以便用户之后可以打开文档并继续编辑。
用户还可以方便地阅读、打印和下载文档。
Java Web Office文档在线编辑通常包括以下主要功能:•文字处理:允许用户输入、编辑和格式化文本。
•图片处理:允许用户插入、调整和删除图片。
•文档存储:允许用户将文档存储在云端,以便共享和协作编辑。
•用户管理:允许管理员在网站上注册用户,并管理用户权限。
Java Web Office文档在线编辑的使用Java Web Office文档在线编辑通常可以在网站上直接使用,也可以通过API连接到其他系统中。
在使用Java Web Office文档在线编辑时,用户需要进行以下步骤:步骤1:登录用户需要在网站上注册账户并登录后才能使用Java Web Office文档在线编辑。
登录后,用户可以在网站上找到编辑文档的选项。
步骤2:选择文档用户可以从自己的本地计算机或者从网站上选择需要编辑的文档。
程序编辑的必备工具文本编辑器推荐

程序编辑的必备工具文本编辑器推荐文本编辑器是程序编辑的必备工具之一。
它为程序员提供了一个便捷且高效的环境,用于编辑、调试和管理代码。
在选择适合自己的文本编辑器时,往往需要考虑诸多因素,如界面友好度、功能强大程度、插件扩展性以及跨平台兼容性等。
下面将为大家推荐几款优秀的文本编辑器,帮助程序员提高开发效率。
一、Sublime TextSublime Text是一款强大且流行的文本编辑器,被广大程序员所喜爱。
它提供了简洁的界面和丰富的功能,支持多种编程语言的语法高亮、自动补全和宏命令等。
Sublime Text还支持插件扩展,可以根据个人需求进行定制。
其跨平台特性使得程序员可以在不同操作系统上进行开发,极大地提高了开发效率。
二、Visual Studio CodeVisual Studio Code是由微软推出的一款轻量级代码编辑器,其功能强大、易于使用,并且拥有丰富的插件生态系统。
Visual Studio Code支持多种编程语言,提供了智能代码补全、调试、版本控制等功能,使得程序员能够更加高效地进行开发。
它还具有丰富的主题可供选择,可以个性化编辑器的外观。
三、AtomAtom是GitHub开发的一款开源文本编辑器,被誉为“21世纪的编辑器”。
它具有可定制化的界面、快速的性能和丰富的插件生态系统。
Atom支持多种编程语言,提供了代码片段、文件目录树、项目管理等实用功能。
同时,Atom还具有Git和GitHub的集成,方便程序员进行代码版本管理。
四、Notepad++Notepad++是一款免费的文本编辑器,适用于Windows环境。
尽管它的功能相对较简单,但Notepad++提供了语法高亮、代码折叠、宏命令等功能,足以满足大部分程序员的需求。
在开发小型项目或进行简单的代码编辑时,Notepad++是一个不错的选择。
五、VimVim是一款老牌而强大的文本编辑器,它具有丰富的特性和高度可定制性。
Vim支持多种操作模式和快捷键,让用户能够快速编辑和导航代码。
java实现简易文本编辑器

java实现简易文本编辑器importjava.awt.某; importjava.awt.event.某; importjava 某.wing.某; importjava某.wing.event.某; importjava.util.某; importjava.io.某; importjava某.wing.filechooer.某; importjava某.wing.filechooer.FileFilter; importjava.awt.datatranfer.某; publicclaTe某te某tendJFrame { Te某tAreaarea; Stringname=null; Stringboard=null; privateClipboar dcb; publicTe某t()throwE某ception { etTitle("记事本"); Toolkitkit=Toolkit.getDefaultToolkit(); Imageimg=kit.getIm age("01.jpg"); etIconImage(img); JMenuBarjmb=newJMenuBar(); a dd(jmb); etJMenuBar(jmb); JMenufile=newJMenu("文件"); JMenuedit=newJMenu("编辑"); JMenuItemrebuild=newJMenuItem("新建"); JMenuItemave=newJMenuItem("保存"); JMenuItemopen=newJMenuItem("打开"); JMenuItemanotherSave=newJMenuItem("另存为"); file.add(rebuild); file.add(ave); file.add(open); file.a dd(anotherSave); rebuild.etAccelerator(KeyStroke.getKeyStroke(" ctrlN")); open.etAccelerator(KeyStroke.getKeyStroke("ctrlO")); ave.etAccelerator(KeyStroke.getKeyStroke("ctrlS")); anotherSa ve.etAccelerator(KeyStroke.getKeyStroke("ctrlA")); area=newTe 某tArea(); add(area); //JScrollPanecroldPane=newJScrollPane(area );//设置滚动轴//add(croldPane); ave.addActionLitener(newActionLitener() { publicvoidactionPerformed(ActionEvente) { try{ aveTe某t(); }catch(E某ceptione某) { } } }); open.addActionLitener(newActionLitener() { publicvoidactionPerformed(ActionEvente) { try{ openTe某t(); }catch(E某ceptione某) { } } }); rebuild.addActionLitener(newActionLitener() { publicvoidactionPerformed(ActionEvente) { try{ area.etTe 某t(""); name=null; }catch(E某ceptione某) {} } }); anotherSave.addActionLitener(newActionLitener() { publicvoidactionPerformed(ActionEvente) { anotherSaveTe 某t(); } }); JMenuItemcut=newJMenuItem("剪切"); JMenuItemcopy=newJMenuItem("复制"); JMenuItemplater=newJMenuItem("粘贴"); JMenuItemall=newJMenuItem("全选"); edit.add(cut); edit.add(copy); edit.add(plater); edit.ad d(all); cut.etAccelerator(KeyStroke.getKeyStroke("ctrl某")); copy.etAccelerator(KeyStroke.getKeyStroke("ctrlC")); plat er.etAccelerator(KeyStroke.getKeyStroke("ctrlV")); all.etAccele rator(KeyStroke.getKeyStroke("ctrlA")); cb=Toolkit.getDefaultTo olkit().getSytemClipboard(); cut.addActionLitener(newActionLite ner()//剪切{ publicvoidactionPerformed(ActionEvente) { board=area.ge tSelectedTe某t(); cb.etContent(newStringSelection(board),null); area.replaceRange("",area.ge tSelectionStart(),area.getSelectionEnd()); } }); copy.addActionLitener(newActionLitener()//复制{ publicvoidactionPerformed(ActionEvente) { board=area.getSelectedTe某t(); cb.etContent(newStringSelection(board),null); } }); pla ter.addActionLitener(newActionLitener()//粘贴{ publicvoidactionPerformed(ActionEvente) { try{ Tranfer ablecontent=cb.getContent(null); Stringt=(String)content.getTra nferData(DataFlavor.tringFlavor); area.replaceRange(t,area.getS electionStart(),area.getSelectionEnd()); }catch(E某ceptione 某) {} } }); all.addActionLitener(newActionLitener()//全选{ publicvoidactionPerformed(ActionEvente) { area.etSelect ionStart(0); area.etSelectionEnd(area.getTe某t().length()); } }); JMenuhelp=newJMenu("帮助"); JMenuItemabout=newJMenuItem("关于"); help.add(about); about.addActionLitener(newActionLitener() { publicvoidactionPerformed(ActionEvente) { JFrameframe=new JFrame("关于"); frame.etSize(150,100); frame.etLocation(400,300); JTe某tAreaarea1=newJTe某tArea("制作人:杨杰\n制作时间:2022.8.03"); frame.add(area1); frame.etViible(true); } }); jmb.add(file); jmb.add(edit); jmb.add(help); etSize(600,400);etLocation(300,200); etViible(true); etDefaultCloeOperation( JFrame.E某IT_ON_CLOSE); } publicvoidopenTe某t()//打开{ JFileChooerchooer=newJFileChooer(); FileNameE某tenionFilterfilter=newFileNameE某tenionFilter("File","t某t","java"); chooer.etFileFilter(filter); chooer.etCurrentDirec tory(newFile(".")); intreult=chooer.howOpenDialog(Te某t.thi); if(reult==JFileChooer.APPROVE_OPTION) { name=chooer.g etSelectedFile().getPath(); etTitle(name); try{ BufferedReade rin=newBufferedReader(newFileReader(name)); Stringline=null; S tringdata=""; while((line=in.readLine())!=null) { if(data=="" ) { data=data+line; } ele { data=data+"\n"+line; } } ar ea.etTe某t(data); in.cloe(); }catch(E某ceptione某) { } } } publicvoidaveTe某t()//保存{ if(name==null) { JFileChooerchooer=newJFileChooer(); F ileNameE某tenionFilterfilter=newFileNameE某tenionFilter("File","t某t","java"); chooer.etFileFilter(filter); chooer.etCurrentDirec tory(newFile(".")); intreult=chooer.howSaveDialog(Te某t.thi); if(reult==JFileChooer.APPROVE_OPTION) { name=chooer.g etSelectedFile().getPath(); try{ OutputStreamout=newFileOutput Stream(name); Stringdata=area.getTe某t(); out.write(data.getByte()); out.cloe(); }catch(E某ceptione某) { } } } ele { try{ OutputStreamout=newFileOutputStre am(name); Stringdata=area.getTe某t() ; out.write(data.getByte()); out.cloe(); }catch(E某ceptione某) { } } } publicvoidanotherSaveTe某t()//另存为{ JFileChooerchooer=newJFileChooer(); FileNameE某tenionFilterfilter=newFileNameE某tenionFilter("File","t某t","java"); chooer.etFileFilter(filter); chooer.etCurrentDirec tory(newFile(".")); intreult=chooer.howSaveDialog(Te某t.thi); if(reult==JFileChooer.APPROVE_OPTION) { name=chooer.g etSelectedFile().getPath(); try{ OutputStreamout=newFileOutput Stream(name); Stringdata=area.getTe某t(); out.write( data.getByte()); out.cloe(); }catch(E某ceptione某) { } } } publictaticvoidmain(String[]arg)throwE 某ception { newTe某t(); } }。
基于Java Web的HTML在线文本编辑器解决方案

基于Java Web的HTML在线文本编辑器解决方案摘要:FckEditor作为众多优秀HTML在线文本编辑器之一,以其支持多语言的优势而受到众多国内外开发者的亲睐。
在Java Web开发中使用FCKeditor可以实现类似微软Word桌面文本编辑器的许多强大功能,因此掌握FckEditor在Java Web开发环境下的配置过程也是开发者必备的技能之一。
关键词:Jsp;FckEditor;HTML;在线文本编辑器2基于Java Web 的HTML在线编辑器解决方案著名的开源网页编辑软件FCKEditor在09年发布至现在已经更新到3.0版本,FckEditor由于其资源轻量化、配置简单、免费开源、文本编辑功能齐全、支持多浏览器、支持PHP、JavaScript、ASP、、ColdFusion、Java、以及ABAP等不同的编程语言的强大优势,受到众多开发者亲睐。
目前,众多的Java Web 项目中FckEditor成为开发者对在线编辑器的首选,为网络文本交互提供文本样式编辑、图片上传下载和附件上传下载的功能。
3FckEditor编辑器在Java Web开发中的配置3.1开发环境和FckEditor配置文件(1)开发环境:MyEclipse7.5 ,JDK1.6 ,tomcat6.0;(2)FckEditor配置文件:FckEditor2.6.6,FckEditor java demo 2.6;3.2FckEditor在Java Web中的基本配置(1)在MyExclipse文件下建设Java Web项目FckEditor。
(2)解压FckEditor_2.6.6.zip文件,将解压后的根目录下的FckEditor文件夹拷贝到SSH框架项目下的WebRoot目录里;(3)将下载FckEditor java demo 2.6文件解压后,把根目录下Web INF中的lib里5个.jar文件:commons fileupload 1.2.1.jar、commons io 1.3.2.jar、FckEditor java core 2.4.jar、slf4j api 1.5.2.jar及slf4j simple 1.5.2.jar 拷贝到SSH框架项目下的Web INF目录中的lib目录里。
分享10个程序员常用的的代码文本编辑器

分享10个程序员常⽤的的代码⽂本编辑器通常操作系统和软件开发包中都包含⽂本编辑器,可以⽤来编辑配置⽂件,⽂档⽂件和源代码。
下⾯是笔者总结的10个最好的免费代码⽂本编辑器:1.NOTEPAD++NOTEPAD++是⼀款免费⼜优秀的⽂本编辑器,⽀持在MS Windows环境下运⾏的多种编程语⾔。
NOTEPAD++⽀持超过50种编程、脚本和标记语⾔的语法⾼亮显⽰和代码折叠,能让⽤户迅速减⼩或扩⼤代码段以便查阅整个⽂档。
⽤户也可以⼿动设置当前语⾔,覆盖默认语⾔。
该程序还⽀持⾃动完成某些编程语⾔的API⼦集。
2.VIMVIM是⼀个可⾼度⾃由配置的⽂本编辑器。
它是Vi编辑器的改进版,同时也是免费软件。
该应有程序的建⽴是为了处理代码以及其他很多事情,⽽不只是为了写电⼦邮件和打开配置⽂件。
它允许你编辑⽂本并保存简单的⽂本⽂件,但它的主要功能是还是编辑代码。
它⽀持语法⾼亮显⽰和⾏编号,这是写程序必备的两个基本功能。
⽤户也可以改变界⾯颜⾊以便增加代码的可视性。
对于⽂本编辑,VIM这个程序囊括了多种语⾔的拼写检查器,并有建议如何更正拼写错误的能⼒。
甚⾄是当你正在编写代码的时候,它也能派上⽤场,因为该应⽤程序只检查不被识别为代码的⽂本。
当然你也可以快速地从这个错误跳到下⼀个以便更好地校对⽂本。
VIM是程序员和开发⼈员应对各种⽂本编辑的最佳选择。
3.GNU EmacsEmacs是⼀个可移植、可扩展、免费的⽂本编辑器。
Emacs提供了⼀些命令来管理语句和段落,⾼亮的语法使得源代码更易于阅读,以及“键盘宏”的⽅式来执⾏⽤户定义的编辑命令。
Emacs可以在若⼲个操作系统上运⾏,⽆论你使⽤的是哪⼀种机器类型。
这让程序员⾮常受⽤。
如果你使⽤的是通⽤的编程语⾔,Emacs还会为你提供模式以及相应的排版和布局,更加⽅便你编辑代码。
Emacs或许不是最简单的⼯具,但它绝对是最强⼤的编辑器之⼀。
相⽐vim,Emacs的启动时间更长,所需要的内存也更多。
Java IDE编辑器 IntelliJ IDEA 9.0.4 or ideaIU 9.0.4 使用基础篇
Java IDE编辑器IntelliJ IDEA使用基础篇先废话几句,大凡是Java开发者都知道Eclipse集成开发编辑器,也都会使用。
但IntelliJ IDEA呢?!我估计,一部分人没听说过,一部分人知道但没有用过。
所以,我在这里写一篇怎么使用IDEA来建立一个Java Web项目。
废话完毕!以下为图文并茂具体内容:我是首先在D盘下创建一个名叫ideademo的文件夹,准备把项目放在这个目录。
哥们,你也跟着造一个吧!打开你的IDEA编辑器,选择菜单栏的第一个菜单File-->New Project,如下图:然后,就是点击按钮Next>如上图,Project files location选择项目文件的位置,就选择刚建立的文件夹ideademo,给项目起个名字叫ideaProject填到Name所在的选项框里,另外Project file fortmat选项我选的是.ipr(file based)选项。
接着,继续下一步,如图:上面这个图所说的是,建立项目源文件目录为src,没别的继续下一步,如下图:记得在左侧复选框里选上Web Application那个勾,因为要开发Java Web项目是必要的,他会给你生成web.xml文件,右边可以选择JavaEE版本,我选择Version:2.5,点击Finish就完了,剩下的是让项目运行起来了!注意:中途如果要你选择JDK,你就选择一下你的JDK安装目录。
下图是建立后的项目结构图:下一步,设置一下项目的编码吧,免得以后文件内容乱码,全给设置个utf-8编码!在编辑里点击上图菜单栏Build下面那个扳手图标,出现下图:在上图左边的框中输入encoding,然后在右边四个选项中全部选择UTF-8,点击按钮OK设置完成!接着点击编辑器中,菜单栏Run下面那个按钮,如下图:选择左侧的选项为Modules,接着选择右侧Paths选项卡,Compiler output,选择Use module compile output path选项,接着点击选项右边浏览按钮继续设置此选项的地址,如下图:因为IDEA工具默认没有给你新建classes目录,所以你设置的时候,点击WEB-INF目录,再点击的新建按钮新建classes目录,点击OK完成。
Java实现在线协作文档编辑
Java实现在线协作⽂档编辑⼤家在⼯作和学习中时常会遇到多⼈编辑⼀个⽂件的情况,⽽多⼈在线协作⽂档编辑器则是⼀个很实⽤、常⽤的⼯具,适合⼩组内的⽂档编辑。
例如可⽤于⼩团队内部进⾏实时编写和收集周报等。
这个项⽬介绍了如何设计实现该功能,使⽤java编写代码,应⽤⾮常流⾏的spring mvc框架,引⼊ckeditor插件,并加⼊localStorage缓存技术,最终利⽤Eclipse完成该实验。
⾮常适合Java 学习者⽤于练⼿。
项⽬涉及知识点:重点掌握 CKEditor重点掌握 LocalStorage 的使⽤了解 Java Web ⽅向的 SpringMVC 框架开发技巧了解 Java Web ⽅向的 Spring JDBCTemplate 开发技巧了解如何在 MySQL 中创建数据、创建表项⽬效果截图:代码开发完成后的效果图,如下:打开应⽤保存⾼清⼤图此处输⼊图⽚的描述实验原理:待实现的功能需求技术调研在线协作编辑实现多⼈在线编辑的功能,可⾃⾏开发web编辑器插件,但是实现成本较⾼,经调研⽬前已经有很多在线编辑器插件可以调⽤,请参考: HTML编辑器-HTML⽹页表单可视化在线编辑器插件⼤全其中,CKEditor(原FCKEditor)是⼀个现成的使⽤旨在简化Web内容创建HTML⽂本编辑器。
是国外⽐较流⾏的⽹页⽂本在线编辑器,早期DEDECMS管理后台发布内容地⽅使⽤此编辑器,这是⼀个所见即所得的编辑器,带来了共同的⽂字处理器的功能,直接到您的⽹页。
最后,因为 CKEditor 免费开源、完全可定制、⾼标准的质量等优点,该课程选择该插件作为前端的输⼊。
实时⾃动保存Web 缓存技术,涉及内容较多。
可参考:Web前后端缓存技术简谈常⽤缓存技术HTML5本地存储 localStorage 、sessionStorage、WebSQL、indexedDB最终,为了兼顾数据保存的简单⾼效和安全,我们选⽤ sessionStorage作为前端存储,因为sessionStorage的优点就是⽅便⾼效;同时为了保证数据的安全不丢失,我们在⽤户确认编写信息⽆误后,通过触发按钮的⽅式将数据提交后台,交由服务器进⾏存储,因为服务器存储数据安全性⾼。
文本编辑器源码
ColorSlider2.setPaintTicks(true);
ColorSlider3.setPaintTicks(true);
ColorSlider1.setMajorTickSpacing(51);
ColorSlider2.setMajorTickSpacing(51);
public class EditPanel extends JPanel
{
public EditPanel()
{
JPanel FontPanel = new JPanel();
JPanel BackColorPanel = new JPanel();
JPanel TextAreaPanel = new JPanel();
ColorSlider1.setPaintTicks(true);
ColorSlider2.setPaintTicks(true);
ColorSlider3.setPaintTicks(true);
ColorSlider1.setPaintLabels(true);
ColorSlider2.setPaintLabels(true);
CopyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
CopyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
Action pictureAction = new PictureAction();
java文本编辑器源码
/** To change this template, choose Tools | Templates* and open the template in the editor.*/package NotepadDemo;/**** @author DELL*/import java.awt.BorderLayout;import java.awt.FileDialog;import java.awt.Font;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.border.TitledBorder;public class NotepadDemo extends JFrame {private static final long serialVersionUID = -5355432125621015300L;private String url = null;//文件路径private String str=null;//复制或剪切的字符串private StringSelection stringSelection=null;private Clipboard clipboard=new Clipboard(str);private Transferable transferable=null;private DataFlavor flavor=null;public NotepadDemo() {init();}private void init() {setTitle("文本编辑器");setSize(500, 600);setContentPane(createContentPane());//添加主面板}/*创建主面板*/private JPanel createContentPane() {JPanel pane = new JPanel(new BorderLayout());pane.add(BorderLayout.NORTH, createChocePane());//添加菜单栏pane.add(createAreaPane());//添加文本编辑区域return pane;}/*创建菜单栏,以及实现功能*/private JPanel createChocePane() {JPanel pane = new JPanel();JMenuBar menuBar1 = new JMenuBar();JMenu menu = new JMenu("文件");menuBar1.add(menu);JMenuItem menuIt1 = new JMenuItem("新建");JMenuItem menuIt2 = new JMenuItem("打开");JMenuItem menuIt3 = new JMenuItem("保存");JMenuItem menuIt4 = new JMenuItem("另存为");menu.add(menuIt1);menu.add(menuIt2);menu.add(menuIt3);menu.add(menuIt4);JMenuBar menuBar2 = new JMenuBar();JMenu menu2 = new JMenu("编辑");menuBar2.add(menu2);JMenuItem menuIt5 = new JMenuItem("复制");JMenuItem menuIt6 = new JMenuItem("剪切");JMenuItem menuIt7 = new JMenuItem("粘帖");menu2.add(menuIt5);menu2.add(menuIt6);menu2.add(menuIt7);JMenuBar menuBar3 = new JMenuBar();JMenu menu3 = new JMenu("帮助");menuBar3.add(menu3);JMenuItem menuIt8 = new JMenuItem("关于记事本");menu3.add(menuIt8);pane.add(menuBar1);pane.add(menuBar2);pane.add(menuBar3);menuIt1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {testArea.setText(null);}});menuIt2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {final FileDialog fd = new FileDialog(new JFrame(), "查找文件",FileDialog.LOAD);fd.setVisible(true);if (fd.getDirectory() != null && fd.getFile() != null) {testArea.setText(null);url = fd.getDirectory() + fd.getFile();try {BufferedReader in = new BufferedReader(new FileReader(url));for (int i = 0;; i++) {testArea.append(in.readLine());if (in.read() == -1) {break;} elsecontinue;}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}});menuIt3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (url==null) {url="D:\\文本编辑器文本文档.txt";}File f = new File(url);BufferedWriter out = null;try {out = new BufferedWriter(new FileWriter(url));f.createNewFile();out.append(testArea.getText());out.flush();} catch (IOException e1) {e1.printStackTrace();} finally {try {out.close();} catch (IOException e1) {e1.printStackTrace();}}}});menuIt4.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {FileDialog fd = new FileDialog(new JFrame(), "保存文本",FileDialog.SAVE);fd.setVisible(true);if (url!=null) {File f = new File(url);BufferedWriter out = null;try {f.createNewFile();out = new BufferedWriter(new FileWriter(url));out.append(testArea.getText());out.flush();} catch (IOException e) {e.printStackTrace();} finally {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}});menuIt5.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {str=testArea.getSelectedText();stringSelection=new StringSelection(str);clipboard.setContents(stringSelection, null);}});menuIt6.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {str=testArea.getSelectedText();stringSelection=new StringSelection(str);clipboard.setContents(stringSelection, null);int start=testArea.getSelectionStart();int end=testArea.getSelectionEnd();testArea.replaceRange( null,start,end);}});menuIt7.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {transferable=clipboard.getContents(this);flavor=DataFlavor.stringFlavor;if (transferable.isDataFlavorSupported(flavor)) {int start=testArea.getSelectionStart();int end=testArea.getSelectionEnd();testArea.replaceRange( null,start,end);int pos=testArea.getCaretPosition();try {str=(String)transferable.getTransferData(flavor);testArea.insert(str, pos);} catch (UnsupportedFlavorException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}}}});menuIt8.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(null,"原创");}});return pane;}JTextArea testArea;private JScrollPane createAreaPane() {JScrollPane pane = new JScrollPane();pane.setBorder(new TitledBorder("编辑区域"));testArea = new JTextArea();testArea.setFont(new Font("宋体", Font.BOLD, 13));testArea.setLineWrap(true);pane.getViewport().add(testArea);return pane;}public static void main(String[] args) {NotepadDemo td = new NotepadDemo();td.setVisible(true);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院
课程设计报告书
课程名称
设计题目文本编辑器的设计与实现
专业班级XXXXXXXXXXX
学号xxxxxxxxxx
姓名xxx
指导教师
2011 年11月
formatMenu.setMnemonic( 'R' );
4.3.5创建,添加帮助菜项
JMenu helpMenu = new JMenu( "帮助(H)" );
helpMenu.setMnemonic( 'H' );
JMenuItem helpItem = new JMenuItem( "帮助主题(H)..." );
helpItem.setMnemonic( 'H' );
helpMenu.add( helpItem );
helpItem.addActionListener(
new ActionListener(){
public void actionPerformed( ActionEvent event ){
JTextArea helpText = new JTextArea(
JScrollPane scroller = new JScrollPane(helpText);
JOptionPane.showMessageDialog(null,scroller);
}
}
);
bar.add( helpMenu ); //添加
4.4设计成果
4.4.1运行界面
图1文本编辑器中字体颜色界面
图2 文本编辑器主界面图3文本编辑器编辑界面
图4文本编辑器文件界面图5文本编辑器格式
图6文本编辑器查找界面图7 文本编辑器帮助界面
图8文本编辑器字体名称界面图9文本编辑器字体风格界面
图10文本编辑器中帮助中关于对话框图11查找消息对话框
图12文本编辑器中另存为对话框
4.4.2主要代码
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import java.io.*;
import ng.*;
public class Notepad extends JFrame{
private final Color colorvalues[] =
{ Color.black, Color.blue, Color.red, Color.green }; //定义颜色数组String styleNames[] = { "Bold", "Italic" };//定义风格数组
String fontNames[] = { "宋体", "华文行楷", "隶书" };//字体数组
String[] sizeString = new String[30];//字号数组
int[] size = new int[30];//与字号数组对应的字号整数,用于设置文字大小
private JRadioButtonMenuItem colorItems[], fonts[];。