Java写的简单文本编辑器代码(word文档良心出品)
- 格式:docx
- 大小:48.52 KB
- 文档页数:12
淮海工学院计算机工程学院
课程设计报告
设计名称:面向对象课程设计
选题名称:文本编辑器的设计与实现
姓名:学号:
专业班级:
系(院):计算机工程学院
设计时间: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实现摘要如果我们把不同的程序开发人员比作三国演义中的各路诸侯大将的话,那么代码编辑器绝对可以称之我们手中的神兵利器。
对于每个程序猿来说,内心的深处都想有一把自己的“青龙偃月刀”和属于自己的一个代码编辑器。
我也有这个想法,我也想自己写一个代码编辑器来满足我的内心深处。
所以这次java的课程作业我选择了这个题目!关键词:Java;代码编辑器;关键字变色;编译和运行前言通过一学期的Java学习,我对Java的理论知识有了一些了解。
但是,只有理论联系实际才能更好的掌握理论,所以这次Java课程设计我选择了Java程序编辑器这个课题,希望可以锻炼自己的动手能力。
我上交给老师您的代码是我参考的网上的一个牛人写的代码,并在他的代码上进行了功能的增加,至于我增加了多少功能,我会论文的附录中给出详细的对比。
1. 软件的定义编写一个界面像Windows系统的记事本的代码编辑器,功能比记事本更强大(针对某一方面)具备以下功能:(1)打开、保存文件功能;(2)能够识别Java中的关键字并能将关键字以高亮的形式显示出来;(3)能够批量的删除代码中的注释;(4)能通过按下按钮调用DOS窗口;(5)能编译和运行Java程序;(6)能够检查括号是否匹配。
2.开发环境IDE: eclipseJDK: jdk-7u45-windows-x64OS:Windows 7 —X643.代码的详细说明主界面:syntaxcolor.v4包中的DemoFrame.java文件,主界面就是一个Frame,然后在上面加上一个菜单栏,一个工具栏和两个Panel,一个panel里面放着JTextPane,另一个里面放着一个几个JLable,用来显示当前鼠标是在第几行,第几列,该Panel放在Frame最下面。
菜单栏:总共有3个JMenu,一个是文件,一个是编辑,一个是帮助。
3个菜单里面各有下拉菜单。
文件JMenu有2个JMenuItem分别为openMenuItem、ExitMenuItem,编辑JMenu有2个JMenuItem分别为cutMentItem、pasteMEnuItem,帮助JMenu有一个JMenuItem是aboutMenuItem用来显示代码编辑器的相关的信息。
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:选择文档用户可以从自己的本地计算机或者从网站上选择需要编辑的文档。
文本编辑器的程序设计及代码示例在计算机科学领域,文本编辑器是一种用于编辑文本文件的应用程序。
它允许用户创建、修改和保存文本文件,并提供了一系列功能来方便用户进行编辑操作。
本文将介绍文本编辑器的程序设计原理,以及示范几个常见的代码示例。
一、程序设计原理文本编辑器的程序设计需要考虑以下几个方面:1. 用户界面设计:一个好的文本编辑器应具备直观友好的用户界面,提供各种操作选项和快捷键,使用户能够轻松地进行文本编辑。
2. 文本处理功能:文本编辑器应具备基本的文本处理功能,如插入和删除文本、查找和替换、拷贝和粘贴等。
这些功能需要通过合适的数据结构和算法来实现。
3. 文本格式化:文本编辑器应支持对文本进行格式化操作,如自动对齐、缩进、换行等。
4. 多标签支持:多标签功能允许用户同时打开多个文本文件,并在它们之间切换。
这要求程序设计中能够有效地管理多个文本文件的打开、关闭和切换。
二、代码示例下面是几个简单的代码示例,用于展示文本编辑器的一些基本功能。
1. 创建文本文件```pythondef create_file(filename):# 创建一个新的文本文件file = open(filename, "w")file.close()```2. 打开文本文件```pythondef open_file(filename):# 打开文本文件并返回文件对象 file = open(filename, "r")return file```3. 插入文本```pythondef insert_text(file, position, text): # 在指定位置插入文本file.seek(position)content = file.read()file.seek(position)file.write(text + content)```4. 删除文本```pythondef delete_text(file, start, end):# 删除指定位置的文本file.seek(start)content = file.read()file.seek(start)file.write(content[:end - start])```5. 查找和替换文本```pythondef find_replace(file, old_text, new_text):# 在文本中查找指定内容并替换file.seek(0)content = file.read()new_content = content.replace(old_text, new_text)file.seek(0)file.write(new_content)```6. 关闭文本文件```pythondef close_file(file):# 关闭文本文件file.close()```三、总结通过以上代码示例,我们展示了文本编辑器的一些基本功能,包括创建文件、打开文件、插入和删除文本、查找和替换文本以及关闭文件。
分享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代码简单的java代码Java是一种面向对象的编程语言,它具有简单、可移植、安全和高性能等特点。
在Java中,我们可以编写各种各样的代码,从简单的“Hello World”程序到复杂的企业级应用程序都可以使用Java来实现。
在本文中,我们将介绍一些简单的Java代码示例。
一、Hello World程序“Hello World”程序是任何编程语言中最基本和最常见的程序之一。
在Java中,我们可以使用以下代码来实现:```public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```这个程序很简单,它定义了一个名为“HelloWorld”的类,并在其中定义了一个名为“main”的方法。
该方法通过调用System.out.println()方法来输出“Hello, World!”字符串。
二、计算两个数之和下面是一个简单的Java程序,用于计算两个数之和:```import java.util.Scanner;public class AddTwoNumbers {public static void main(String[] args) {int num1, num2, sum;Scanner input = new Scanner(System.in);System.out.print("Enter first number: ");num1 = input.nextInt();System.out.print("Enter second number: ");num2 = input.nextInt();sum = num1 + num2;System.out.println("Sum of the two numbers is " + sum); }}该程序首先导入了java.util.Scanner类,以便从控制台读取输入。
分享⼀个Delphi制作的⽂档编辑器源代码(仿Word)
功能挺多的,就是很多地⽅都没有完善。
不过简单使⽤,是没有问题的。
我也忘记是在哪个⽹站下载的,可能是Git国外的⽹站。
仿Word⽂档编辑器,不过其实没有必要的,因为⽤户会直接使⽤微软或者其他软件来制作⾃⼰的⽂档。
但是却具有参考价值,虽然代码需要优化的地⽅还有很多。
⽐如那些添加控件这些可以去除,把代码结构处理得紧凑⼀些,⽽且增加更多可以⾃定义的地⽅就更理想了。
其实⼤家最最讨厌都是⼀些滚动条和控件背景颜⾊都⽆法⾃定义,都被写得死死的,就像原来Vcl那些玩意⼀样。
想弄个⾃定义界⾯都办不到。
这套代码也是这样,所以需要⼤家⾃⼰改。
下⾯这个是我改的,多页功能,我去掉了,改成单页,跟RichEdit这种类型⼀样。
不过完全⽀持表格、图⽚、GIF图⽚这些添加,⽽且可以⾃定义编辑框背景图⽚的添加和更换。
这样⼀来,也算是解决了⼀直以来的⼼愿。
⾄少收集和管理各种⽂档资料更加⽅便了。
在这⾥提供原来代码的下载地址,原来的忘记了:
有兴趣的,⾃⼰下载看看,⾄于我改的就不提供了。
它⾥⾯带有作者的通讯⽅式,有兴趣可以联系交流。
Java程序开发实训——实训任务书主编:季松华目录图书馆管理信息系统开发实训 (3)1.实训任务 (3)2.实训目的 (4)3.实训方式 (5)4.实训条件 (5)5.实训内容及计划 (5)6.实训步骤 (7)6.1子任务一:需求分析与项目设计 (7)6.2子任务二:数据库设计与环境搭建 (8)6.3子任务三:MVC设计与底层代码封装 (9)6.4子任务四:界面设计 (9)6.5子任务五:用户管理子系统 (10)6.6子任务六:图书管理子系统 (10)6.7子任务七:图书借还管理子系统 (11)6.8子任务八:软件测试与项目总结 (11)7.考核标准 (12)8.参考资料 (13)附件软件文档编写向导 (14)图书馆管理信息系统开发实训1.实训任务本次实训计划32学时,完成一个c/s架构的图书馆管理信息系统的设计、编码和测试。
实训的重点是面向对象程序设计、图形界面设计、事件的处理及数据库编程设计。
1.1项目背景XXX学校每学期都要购进大量的书籍,图书馆管理系统是一个学校不可缺少的一部分。
它的操作和管理对于管理者来说,可以使书籍管理工作规范化、系统化、程序化,很重要的是能够为用户提供充足的信息和快捷的查询手段。
因此有必要建立一个图书管理系统,以避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
1.2系统架构本系统采用简单的c/s架构,mysql充当数据库服务器,可以同时被多个客户端连接。
1.3功能示例图书管理系统主要有用户管理、图书管理、借阅管理等功能。
图1 图书馆管理系统结构示意图图2 图书馆管理系统功能矩阵&角色权限图2.实训目的通过本次实训使学生系统的掌握软件开发的主要流程,并学会Java语言开发软件项目的方法,掌握软件技术文档的撰写要求。
3.实训方式本次任务共分解成八个子任务,每个子任务分配4个学时。
由教师布置任务,引导学生对任务进行讨论、分析,剖析出任务的要点与难点,针对难点进行演示。
JAVA代码规范本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。
本文档中没有说明的地方,请参看SUN Java标准代码规范。
如果两边有冲突,以SUN Java标准为准。
1. 标识符命名规范1.1 概述标识符的命名力求做到统一、达意和简洁。
1.1.1 统一统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。
统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。
即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
1.1.2 达意达意是指,标识符能准确的表达出它所代表的意义,比如:newSupplier, OrderPaymentGatewayService等;而supplier1, service2,idtts等则不是好的命名方式。
准确有两成含义,一是正确,而是丰富。
如果给一个代表供应商的变量起名是order,显然没有正确表达。
同样的,supplier1, 远没有targetSupplier意义丰富。
1.1.3 简洁简洁是指,在统一和达意的前提下,用尽量少的标识符。
如果不能达意,宁愿不要简洁。
比如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长,transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。
省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写。
1.1.4 骆驼法则Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。
比如: supplierName, addNewContract,而不是supplier_name, add_new_contract。
Java Web Office文档在线编辑1、创建页面<html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>Office在线编辑</title></head><body><script language="javascript">function CreateDoc(){document.all.OA1.CreateNew( "Word.Document");}function CreateExcel(){document.all.OA1.CreateNew( "Excel.Sheet");}function CreatePPT(){document.all.OA1.CreateNew( "PowerPoint.Slide");}function OpenFromLocal(){document.all.OA1.OpenLocalDialog();}function ShowToolbars(){var x = document.all.OA1.GetToolbarsIsShow();document.all.OA1.ShowToolbars( !x);}function PrintFile(){if(document.all.OA1.IsOpen()){document.all.OA1.Print();}}function DocIsDirty(){if(document.all.OA1.IsOpen()){if(document.all.OA1.IsDirty()){window.alert("The been modified!");}else{window.alert("The 't been modified!");}}}function SaveAs(){document.all.OA1.SaveLocalDialog();}function CloseFile(){if(document.all.OA1.IsOpen()){document.all.OA1.Close();}}function OpenFromServer(){var sPath= window.prompt("服务器文件路径:", "");document.all.OA1.OpenWeb)}function SavetoServer(){if(document.all.OA1.IsOpen()){window.alert("保存文件到服务器!");document.all.OA1.SaveWebFile("");}}</script><object classid="clsid:18A295DA-088E-42D1-BE31-5028D7F9B9B5"id="OA1"width="100%" height="700"codebase=""><param name="_Version"value="65536"><param name="_ExtentX"value="17859"><param name="_ExtentY"value="10848"><param name="_StockProps"value="0"><param name="BorderStyle"value="1"><param name="BorderColor"value="16777215"><param name="CaptionColor"value="12632256"><param name="CaptionLabel"value="等待打开一个 Office 文档!"></object><input type="button"onClick="CreateDoc()"value="新建 Word"><input type="button"onClick="CreateExcel()"value="新建 Excel"><input type="button"onClick="CreatePPT()"value="新建 PPT"><input type="button"onClick="OpenFromLocal()"value="打开"><input type="button"onClick="ShowToolbars()"value="显示/隐藏工具栏"> <input type="button"onClick="DocIsDirty()"value="是否修改"><input type="button"onClick="PrintFile()"value="打印"><input type="button"onClick="SaveAs()"value="保存"><input type="button"onClick="CloseFile()"value="关闭"><br><input type="button"onClick="OpenFromServer()"value="从服务器打开"> <form><input type="button"onClick="SavetoServer()"value="保存到服务器"></form></body></html>2、创建文件保存到服务器Servletpackage tmp;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.;import java.io.IOException;import java.io.InputStream;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import login.Constants;import mons.;import mons.;public class UpLoadServlet extends HttpServlet{public void init() throws ServletException{}public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// process(req, resp);process(req);}public void process(HttpServletRequest request) throws IOException{// 读取控件输入流InputStream stream = request.getInputStream();// 将输入流保存到文件savefile = new (Constants. + UUID.randomUUID() + ".doc");byte[] bytes = new byte[1024];int len;while ((len = stream.read(bytes)) != -1){save(bytes, 0, len);save();}// 关闭文件stream.close();// 关闭输入流save();}public void process(HttpServletRequest request, HttpServletResponse response) throws IOException{Servlet upload = new Servlet();InputStream stream = null;BufferedInputStream bis = null;BufferedOutputStream bos = null;try{stream = request.getInputStream();String = "ddd.doc";String fileId = UUID.randomUUID().toString() + (("."));// 取扩展名bis = new BufferedInputStream(stream);bos = new BufferedOutputStream(new (new + fileId)));Streams.copy(bis, bos, true);response.getWriter().write("{success:true}");} catch (Exception e){response.getWriter().write(String.format("{success:false,message:'%s'}", e.getMessage()));} finally{if (stream != null){try{stream.close();} catch (Exception e){}}if (bis != null){try{bis.close();} catch (Exception e){}}if (bos != null){try{bos.close();} catch (Exception e){}}}}public void destroy(){}}3、配置web.xml<servlet><display-name>UpLoadServlet</display-name><servlet-name>UpLoadServlet</servlet-name><servlet-class>tmp.UpLoadServlet</servlet-class> </servlet><servlet-mapping><servlet-name>UpLoadServlet</servlet-name><url-pattern>/UpLoadServlet</url-pattern></servlet-mapping>4、下载控件包Office文档在线编辑OCX控件包。
//编程:建立一个分数类。
分数类的数据成员包括分子和分母,操作包括显示、输入、约分、通分、比较、加、减、乘、除、求相反数。
#include<iostream>#include<cmath>using namespace std;class fraction{int above; //分子int below; //分母void reduction(); //约分void makeCommond(fraction&); //通分public:fraction(int a=0,int b=1){ //构造函数above=a;below=b;}fraction add(fraction); //两分数相加fraction sub(fraction); //本分数减去实参分数fraction mul(fraction); //两分数相乘fraction div(fraction); //本分数除以实参分数fraction reciprocal(); //求倒数bool equal(fraction); //等于运算bool greaterThan(fraction); //大于运算bool lessThan(fraction); //小于运算void display(); //显示分数void input(); //输入分数};void fraction::reduction(){ //约分先求最大公约数int a,b,temp;if(below<0){above=-above;below=-below;}a=abs(above);b=abs(below);while(a%b){ //欧几里德法求最大公约数temp=a;a=b;b=temp%b;}above/=b;below/=b;}void fraction::makeCommond(fraction& b){int temp;reduction();b.reduction();above*=b.below;b.above*=below;temp=below*b.below;below=b.below=temp;}fraction fraction::add(fraction b){fraction temp;makeCommond(b); //通分temp.above=above+b.above;temp.below=below;temp.reduction(); //约分return temp;}fraction fraction::sub(fraction b){fraction temp;makeCommond(b); //通分temp.above=above-b.above;temp.below=below;temp.reduction(); //约分return temp;}fraction fraction::mul(fraction b){fraction temp;temp.above=above*b.above;temp.below=below*b.below;temp.reduction(); //约分return temp;}fraction fraction::div(fraction b){fraction temp;if(b.above==0){cout<<"零不能作除数!"<<endl;exit(1);}temp.above=above*b.below;temp.below=below*b.above;temp.reduction(); //约分return temp;}fraction fraction::reciprocal(){fraction temp;temp.above=below;temp.below=above;temp.reduction(); //约分return temp;}bool fraction::equal(fraction b){makeCommond(b); //通分return(above==b.above);}bool fraction::greaterThan(fraction b){makeCommond(b); //通分return(above>b.above);}bool fraction::lessThan(fraction b){makeCommond(b); //通分return(above<b.above);}void fraction::display(){reduction(); //约分cout<<"为:"<<above<<"/"<<below<<endl;}void fraction::input(){while(1){cout<<"请顺序输入分子和分母(整数):"<<endl;cin>>above>>below;if(below==0) cout<<"分母不可为零!"<<endl;else{reduction();return;}}}int main(){fraction f1(-3,-5),f2(-3,5),f3(3,-7),f4,f5(8);cout<<"f1"; f1.display();cout<<"f2"; f2.display();cout<<"f3"; f3.display();cout<<"f4"; f4.display();cout<<"f5"; f5.display();if(f1.greaterThan(f2)) cout<<"f1>f2"<<endl;if(f2.lessThan(f3)) cout<<"f2<f3"<<endl;if(f1.equal(f1)) cout<<"f1==f1"<<endl;f4=f1.add(f3);cout<<"f4=f1+f3"; f4.display();f4=f1.sub(f2);cout<<"f4=f1-f2"; f4.display();f4=f1.mul(f3);cout<<"f4=f1*f3"; f4.display();f4=f2.div(f3);cout<<"f4=f1/f3"; f4.display();f4=f2.reciprocal();cout<<"f4=1/f2"; f4.display();f4.input();cout<<"f4"; f4.display();return 0;}4.3 构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用枚举类型,并完成测试。
JAVA--简单记事本源代码import javax.swing.JFrame;import javax.swing.JTextArea;import java.awt.*;import java.awt.event.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;import javax.swing.plaf.FileChooserUI;public class notepad extends JFrame implements ActionListener{//定义所需要的组件JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[]args){new notepad();}public notepad(){//把组件添加到窗体上jta=new JTextArea();jmb=new JMenuBar();this.add(jta);this.setJMenuBar(jmb);//设置窗体属性this.setTitle("简易记事本");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);//把菜单添加进菜单条jm=new JMenu("⽂件");jm.setMnemonic('f');jmb.add(jm);//把⼦菜单加⼊⾄菜单jmi1=new JMenuItem("打开");jmi2=new JMenuItem("保存");jmi1.setActionCommand("open");jmi2.setActionCommand("save");jm.add(jmi1);jm.add(jmi2);//为两个字菜单注册事件监听jmi1.addActionListener(this);jmi2.addActionListener(this);}public void actionPerformed(ActionEvent e){//对点击了打开进⾏处理if(e.getActionCommand().equals("open")){//创建⼀个⽂件选择组件JFileChooser jfc1=new JFileChooser();//设置⽂件选择器的名字jfc1.setDialogTitle("请选择⽂件....");//设置⽂件选择组件的类型(打开类型)jfc1.showOpenDialog(null);//显⽰该组件jfc1.setVisible(true);//获取选择⽂件的绝对路径String s;s=jfc1.getSelectedFile().getAbsolutePath();//将该⽂件显⽰到记事本上BufferedReader br=null;FileReader fr=null;try{//创建⼀个带缓冲的⽂件读取对象fr=new FileReader(s);br=new BufferedReader(fr);String text="";String m=null;//循环读取⽂件while((m=br.readLine())!=null){text+=m+"\r\n";}//将读取的结果打印到记事本上⾯this.jta.setText(text);}catch(Exception e1){e1.printStackTrace();}finally{//关掉打开的⽂件try{br.close();fr.close();}catch(Exception e2){e2.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//创建⼀个⽂件选择组件JFileChooser jfc=new JFileChooser();//设置⽂件选择的名称jfc.setDialogTitle("另存为");//设置⽂件选择组件的类型(保存类型)jfc.showSaveDialog(null);//显⽰该组件jfc.setVisible(true);//获取选择⽂件的绝对路径String filename;filename=jfc.getSelectedFile().getAbsolutePath(); //将记事本内的⽂本保存⾄该路径BufferedWriter bw=null;FileWriter fw=null;try{//创建⽂件输出⽂件fw=new FileWriter(filename);bw=new BufferedWriter(fw);//获取⽂本String outtext="";outtext=this.jta.getText();//输出⽂本fw.write(outtext);}catch(Exception e2){e2.printStackTrace();}finally{//关闭打开的输出⽂件try{bw.close();fw.close();}catch(Exception e3){e3.printStackTrace();}}}}}。
Java 程序设计总复习题1、编写一个Java 程序在屏幕上输出“你好!”。
(p13,例1-1)//programme name Helloworld.javapublic class Helloworld {public static void main(String args[]) {System.out.print (" 你好! " );}}2.编写一个 Java 程序,用 if-else 语句判断某年份是否为闰年。
//Programme Name LeapYear.javapublic class LeapYear{public static void main(Stringargs[]){ int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]); if((year%4==0&& year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。
");elseSystem.out.println(year+" 年不是闰年。
");}}//if-else 语句3、编写一个Java 程序在屏幕上输出1! +2! +3! +⋯⋯ +10!的和。
( p64,例 2-2)//programme name ForTest.javapublic class ForTest {public static void main( String args[] ){ int i,j,mul,sum=0; for(i=1;i<=10;i++){mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;}System.out.println( “1! +2! +3! +⋯⋯ +10 != ”+sum); }}4.( 1)编写一个圆类 Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( )Circle(double r ) // 将半径设为// 创建 Circle对象时将半径初始化为r③ 三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) // 获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类 Cylinder ,它继承于上面的 Circle 类。
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame {係统组件声明private JMenuBar menuBar = new JMe nuBar(; private JEditorPa ne content = new JEditorPa ne(; private JScrollPa ne scroll = new JScrollPa ne(c ontent; private JFileChooser filechooser = new JFileChooser(; private BorderLayout bord = new BorderLayout(; private JLabel statusBar = new JLabel(; private JPanel pane = new JPanel(; private File file = null; /定义文件菜单private JMenu fileMenu = new JMenu(; private JMenultem newMenultem = new JMenultem(; private JMe nultem ope nMen ultem = new JMe nultem(; private JMe nultem saveMe nultem = new JMe nultem(; private JMe nultem saveAsMe nultem = new JMe nultem(; private JMe nultem pageSetupMe nultem = new JMe nultem(; private JMe nultem prin tMe nultem = new JMe nultem(; private JMe nultem exitMe nultem = new JMenultem(; // 定义风格菜单private JMenu styleMenu = new JMenu(; private Butt on Group styleMe nu Group = new Butt on Group(; private JRadioButt onMen ultem javaStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem metalStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem windowsStyleMenultem = new JRadioButtonMenultem(; // 定义帮助菜单private JMe nultem aboutMe nultem = new JMe nultem(; private JMe nultem helpTopicMe nultem =new JMenultem(; private JMenu helpMenu = new JMenu(; 〃构造函数public Notepad({ initComponents(; } private void initComponents({ // 添加子菜单项到文件菜单fileMe nu.setText("\u6587\u4ef6 (F"; n ewMe nultem.setText(” 新建(NCtrl+N"; ope nMen ultem.setText(” 打开(O…Ctrl+O"; saveMe nultem.setText(”保存(S Ctrl+S"; saveAsMenultem.setText(” 另存为(A..."; pageSetupMenultem.setText(” 页面设置(U..."; printMenultem.setText(” 打印(P... Ctrl+P"; exitMe nultem.setText(” 退出";fileMe nu.add( newMe nultem;fileMe nu .add(ope nMen ultem; fileMe nu .add(saveMe nultem; fileMe nu .add(saveAsMe nultem; fileMe nu.addSeparator(; fileMenu.add(pageSetupMenultem;fileMenu.add(printMenultem; fileMe nu.addSeparator(; fileMe nu.add(exitMe nultem; // 添加子菜单项到风格菜单styleMe nu.setText(‘ 风格(S"; javaStyleMe nultem.setText("Java 默认";metalStyleMe nultem.setText("Metal 风格";wi ndowsStyleMe nultem.setText("Wi ndows 风格";styleMe nuGroup.add(javaStyleMe nultem;styleMe nuGroup.add(metalStyleMe nuItem;styleMe nu Group.add(wi ndowsStyleMe nultem; styleMe nu .add(javaStyleMe nultem; styleMe nu.add(metalStyleMe nultem; styleMe nu.add(wi ndowsStyleMe nultem; // 添加子菜单项到帮助菜单helpMenu.setText(‘帮助(H"; helpTopicMenultem.setText(” 帮助主题(H"; aboutMenultem.setText(” 关于记事本(A";helpMe nu .add(helpTopicMe nultem; helpMe nu .addSeparator(;helpMe nu .add(aboutMe nultem; //定义文件菜单下的事件监听n ewMe nultem.addActio nListe ner(new n ewMe nultem_actio nAdapter(this; ope nMen ultem.addActio nListe ner(new ope nMen ultem_actio nAdapter(this; saveMenultem.addActio nListe ner(new saveMe nultem_actio nAdapter(this; saveAsMe nultem.addActio nListe ner(new saveAsMe nultem_actio nAdapter(this; pageSetupMe nultem.addActio nListe ner(new pageSetupMe nultem_actio nAdapter(this; prin tMe nultem.addActi on Liste ner(n ew prin tMe nultem_actio nAdapter(this;exitMenultem.addActionListener(new exitMenultem_actionAdapter(this; // 定义风格菜单下的事件监听javaStyleMenultem.addActionListener(newjavaStyleMenultem_actionAdapter(this; metalStyleMenultem.addActionListener(new metalStyleMe nultem_actio nAdapter(this;wi ndowsStyleMe nultem.addActio nListe ner(newwi ndowsStyleMe nultem_actio nAdapter(this; // 定义帮助菜单下的事件监听helpTopicMe nultem.addActio nListe ner(new helpTopicMe nultem_actio nAdapter(this; aboutMe nultem.addActio nListe ner(new aboutMe nultem_actio nAdapter(this; 〃填加菜单至U菜单栏menuBar.add(fileMenu; menuBar.add(styleMenu; menuBar.add(helpMenu; // 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE; this.setTitle(" 纪生的记事本";this.setSize(640,480; setJMenuBar(menuBar; pane.setLayout(bord;pane.add("Center",scroll; setContentPane(pane; } /定义新建菜单项方法public void newMe nultemActio nPeformed(Actio nEve nt evt{ file = nu II;if(!("".equals(co nten t.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptio nPan e.showOptio nDialog( null, "\u6587\u4ef6 "+getTitIe(+"\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6 \u5417\uff1f", "\u8bb0\u4e8b\u672c", JOptio nPan e.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]; switch(s{ case 0: int returnVal=filechooser.showSaveDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION { file=filechooser.getSelectedFile(; try{ FileWriterfw=new FileWriter(file; fw.write(co nten t.getText(;setTitle(filechooser.getSelectedFile(.getName(+" - \u8bb0\u4e8b\u672c"; fw.close(; } catch(Excepti on e{ e.pri ntStackTrace(; } break; } case 1: conten t.setText(""; setTitle("无标题-\u8bb0\u4e8b\u672c"; } } } // 定义打开菜单项方法public voidope nMen ultemActio nPeformed(Actio nEve nt evt{ try { file = n ull; int returnVal = filechooser.showOpenDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION{ file = filechooser.getSelectedFile(; FileReader fr = new FileReader(file; int len = (in tfile .len gth(; char[] buffer = new char[le n]; fr.read(buffer,0,le n; fr.close(; conten t.setText (newString(buffer; } } catch(Exception e{ e.printStackTrace(; } } // 定义退出菜单项方法public void exitMe nultem_actio nPeformed(Actio nEve nte{ if(!("".equals(co nte nt.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptionPane.showOptionDialog(null,"文件的文字已经改变。
(完整word版)软件需求规格说明书(范例)(word⽂档良⼼出品).docx项⽬管理协作⽀撑系统软件需求规格说明书⽬录1.引⾔ (2)1.1⽬的 (2)1.2适⽤范围 (2)1.3参考资料 (2)1.4术语和缩略语 (2)2.系统概述 (2)2.1产品描述 (2)2.2产品功能 (4)2.3⼀般约束 (5)3.功能性需求分类 (5)3.1功能描述 1 .................................................................................................................错误!未定义书签。
3.2功能描述 2 (5)4.产品的⾮功能性需求 (11)4.1外部接⼝说明 (11)4.1.1⽤户接⼝ (11)4.1.2软件接⼝ (11)4.2性能需求 (11)4.2.1硬件的限制 (11)4.3属性 (11)4.3.1友好性 (11)4.3.2安全性 (11)4.3.3可维护性 (11)4.3.4可转移 / 换性 (12)4.4系统的运⾏环境 (12)4.5其他需求 (12)4.5.1⽤户操作需求 (12)附录 A:需求确认 (14)1.引⾔1.1⽬的编写此⽂档的⽬的是进⼀步定制软件开发的细节问题, 希望能使本软件开发⼯作更具体。
是为使⽤户、软件开发者及分析⼈员对该软件的初始规定有⼀个共同的理解,它说明了本产品的各项功能需求、性能需求和数据要求,明确标识各功能的实现过程,阐述实⽤背景及范围,提供客户解决问题或达到⽬标所需的条件或权能,提供⼀个度量和遵循的基准。
1.2适⽤范围在各个⾏业中,当我们接受到⽤户的商业项⽬后,在项⽬运⾏的全过程中充满了不确定因素,只有有效的运⽤项⽬管理的科学和艺术,才有可能使项⽬取得成功。
对以上⽅⾯要想达到有效的管理⽔平,必须有⼀套科学的管理⽅法,但是即使有了科学的管理⽅法,由于项⽬⼲系⼈之间的沟通、协作不到位,往往达不到预期的结果。
1、向wor d中写入内容首先在word中设置书签,如书签名为book mark,javas cript中可以这样写va rword;wor d=new Activ eXObj ect("Word.Appli catio n");varra nge=w ord.R ange;word.Visi ble=t rue;varpa th="f ilepa th";word.Docum ents.Open(path);ran ge=wo rd.Ac tiveD ocume nt.Bo okmar ks("b ookma rk").Range;ran ge.In sertB efore("哈哈哈哈哈哈");庸-人发表于2010-07-0612:48:38Zm j一起聊2、把wo rd文件转成html文件<scrip tlang uage=javas cript>fun ction savew ord(){var oWord App=n ewAct iveXO bject("Wor d.App licat ion");var oDocu ment=oWord App.D ocume nts.O pen("C:\\d oc2ht ml\\x.doc");oD ocume nt.Sa veAs("C:\\test.htm",8)oW ordAp p.Qui t();}</s cript></H EAD><BODY>Cli ckthe"save"butt ontos aveth efile"C:\t est.d oc"to"C:\t est.h tm":<inpu ttype=butt ononc lick="save word()"val ue=sa ve></BOD Y></HTML>庸-人发表于2010-07-06 12:53:09Zmj一起聊拷贝tabl e1内的内容到wor d<s cript langu age="javas cript">fu nctio nOpen Word(){//导出wordLaye r1.st yle.b order=0;E xcelS heet=newAc tiveX Objec t('Wo rd.Ap plica tion');Ex celSh eet.A pplic ation.Visi ble=t rue;varmy doc=E xcelS heet.Docum ents.Add('',0,0);my Range=mydo c.Ran ge(0,1);m yRang e=myd oc.Ra nge(m yRang e.End-1,my Range.End);//设定起始点v arsel=Laye r1.do cumen t.bod y.cre ateTe xtRan ge();sel.moveT oElem entTe xt(ta ble1);sel.sele ct();Laye r1.do cumen t.exe cComm and('Copy');se l.mov eEnd('char acter');m yRang e.Pas te();myR ange=mydoc.Rang e(myR ange.End-1,myRa nge.E nd);myRan ge.In sertA fter("\n");Exc elShe et.Ac tiveW indow.View.Tabl eGrid lines=fals e;}</scr ipt>庸-人发表于2010-07-06 12:57:43Zmj一起聊操作excel:<%@page c%><h1>co ntent</h1><htm l><h ead><scri ptlan guage="jav ascri pt"ty pe="t ext/j avasc ript">fun ction MakeE xcel(){va ri,j,n;tr y{va rxls=newAc tiveX Objec t("Ex cel.A pplic ation");}catc h(e){aler t("要打印该表,您必须安装E xcel电子表格软件,同时浏览器须使用“Activ eX控件”,您的浏览器须允许执行控件。
import java.awt.*;import java.awt.eve nt.*; import java.io.*;public class Notepad /*impleme nts Action Liste ner , MouseListe ner ,MouseMoti on Liste ner , Win dowListe ner , ItemListe ner , KeyListe ner, TextListe ner */ {//成员变量 private Menultem miNew , miOpen , miSave , miSaveAs , miExit ; // 文 件菜单项:新建,打开,保存,另存为,退出private Menultem miCut , miCopy , miPaste , miDelete ;//编辑菜单项: 剪切,复制,粘贴,删除private Menultem miFont , miLowtoCapital , miCapitaltoLow , miEncrypt miDisencrypt ; //格式菜单项:字体 privateMenultemmiAboutNotepad ; // 帮助菜单项:关于记事本private Frame mainFrame ; // 主框架 private Men uBar mb ; // 菜单条private Me nu mFile , mEdit , mFormat式,帮助mHelp ; //菜单:文件,编辑,格 private TextAreata ; //文本区private StringtempString ; 〃临时字符串,用于存储需要复制粘贴的字符串private boolea n textValueCha nged = false privateint id_fo nt//字体Stri ng fileName = "" ; //上次保存后的文件名和地址//构造函数public Notepad(){//框架main Frame = new Frame ( "Notepad v0.99 by Laun chi ng" );mb = new Men uBar (); ta = new TextArea (30 ,60); ta .setFont( new Font ( "Times New Rome" , Font. PLAIN , 15)); ta .setBackground( new Color(0,250,200)); //菜单条 mFile = mEdit =new Menu ( new Menu("文件"); "编辑");mFormat = new Menu ( " 格式t" ); mHelp = new Menu ( " 帮助" );//" 文件"miNew = new MenuItem ( " 新建" ); miOpen = new MenuItem ( " 打开" ); miSave = new MenuItem ( " 保存" );miSaveAs = new MenuItem ( " 另存为" ); miExit = new MenuItem ( "退出" );//" 编辑"miCut = new MenuItem ( " 剪切" ); miCopy = new MenuItem ( " 复制" ); miPaste = new MenuItem ( " 粘贴" ); miDelete = new MenuItem ( " 删除" );//" 格式"miFont = new MenuItem ( "Font" );miLowtoCapital = new MenuItem( "Low to Capital"miCapitaltoLow = new MenuItem( "Capital to Low"miEncrypt = new MenuItem( "Encrypt" ); miDisencrypt = new MenuItem( "Disencrypt" );//" 帮助"miAboutNotepad = new MenuItem ( " 关于Notepad" );// 添加文件菜单项mFile .add( miNew );mFile .add( miOpen );mFile .add( miSave );mFile .add( miSaveAsmFile .add( miExit );// 添加编辑菜单项// 添加帮助菜单项mHelp .add( miAboutNotepad );); );mEdit .add( mEdit .add( mEdit .add( mEdit .add( miCut ); miCopy ); miPaste ); miDelete );// 添加格式菜单项mFormat .add( mFormat .add( mFormat .add( mFormat .add( mFormat .add( miFont ); miLowtoCapital miCapitaltoLow miEncrypt ); miDisencrypt);););//菜单条添加菜单 mb.add( mFile ); mb.add( mEdit ); mb.add( mFormat ); mb.add( mHelp );//框架添加菜单条mai nFrame .setMe nuBar( mb ); //初始字符串赋为空 tempString ="";//添加文本区main Frame .add( ta , BorderLayout. CENTER);main Frame .setSize(800,500);main Frame .setLocati on( 100 ,100); main Frame .setResizable( true mainFrame .setVisible( true ); //ma in Frame.pack();增加监视器 ////////////////////// //主框架mai nFrame .addWi ndowListe ner( new Win dowAdapter (){ //关闭窗口public void win dowClos in g(Wi ndowEve nt e) { System. exit (0); } });//文本区ta .addKeyListener( new KeyAdapter(){ public void KeyTyped(KeyEvent e){ _________textValueChanged = true ; //键盘按键按下即导致文本修改 }});////////////////" 文件"菜单:////////////////////////新建miNew .addActionListener( new ActionListener(){ public void action Performed(Act ion Eve nt e){//起始位置 );//不可更改大小 /////////////////////////ta .replaceRange( "",0 , ta .getText().length()); //清空文本区的内FileDialog d=new FileDialog( mai nFrame FileDialog. LOAD );II 打开文件对话框d.addWi ndowListe ner( new Win dowAdapter(){public void wi ndowClosi ng(Wi ndowEve nt ee){ System. exit (0);}});d.setVisible(true );"open file" ,//关闭文件对话框窗口//建立新文件fileName = d.getDirectory()+d.getFile(); //得到文件名char ch[] = new char [( int )f.length()]; 符数组III 用此文件的长度建立一个字try II 异常处理 {II 读出数据,并存入字符数组ch 中 BufferedReader bw = new BufferedReader( bw.read(ch);bw.close(); }catch ( FileNotFoundException fe ){ System. out .println( "file not found" ); System. exit (0); }catch ( lOException ie){ System. out .println( "IO error" ); System. exit (0); } new FileReader(f));String s =new String (ch);ta .setText(s); II 设置文本区为所打开文件的内容fileName = "" ;//文件名清空 } });//打开miOpen .addActionListener( new ActionListener(){ public void action Performed(Act ion Eve nt e) { File f =new File( d.getDirectory()+d.getFile());});// 保存miSave .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvente) {if ( fileName .equals( ) ){ // 如果文件没有被保存过, 即文件名为空FileDialog d= new FileDialog( mainFrame , "save file" , FileDialog. SAVE ); // 保存文件对话框d.addWindowListener( new WindowAdapter(){ // 关闭文件对话框窗口public voidwindowClosing(WindowEvent ee){System. exit (0);}});d.setVisible( true );String s = ta .getText(); // 得到所输入的文本内容try // 异常处理{File f = new File( d.getDirectory()+d.getFile()); // 新建文件fileName = d.getDirectory()+d.getFile(); // 得到文件名BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中bw.write(s , 0 , s.length());bw.close();}catch (FileNotFoundException fe_){System. out .println( "file not found" );System. exit (0);}catch ( IOException ie_){System. out .println( " IO error" );System. exit (0);}}else // 如果文件已经保存过{String s = ta .getText(); // 得到所输入的文本内容try // 异常处理{File f = new File( fileName ); // 新建文件BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中bw.write(s , 0 , s.length());bw.close();}catch (FileNotFoundException fe_){System. out .println( "file not found" );System. exit (0);}catch ( IOException ie_){System. out .println( " IO error" );System. exit (0);}}}});// 另存为miSaveAs .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvente) {FileDialog d= new FileDialog( mainFrame , "save file" , FileDialog. SAVE ); // 保存文件对话框d.addWindowListener( new WindowAdapter(){ // 关闭文件对话框窗口public voidwindowClosing(WindowEvent ee){System. exit (0);}});d.setVisible( true );String s = ta .getText(); // 得到所输入的文本内容try // 异常处理{File f = new File( d.getDirectory()+d.getFile()); // 新建文件BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中bw.write(s , 0 , s.length());bw.close();编辑" 菜单: //////////////////// // 剪切miCut .addActionListener( public voidactionPerformed(ActionEvent e){ tempString = ta .getSelectedText();tempString 中StringBuffer tmp = new StringBuffer ( 文本 int start = ta .getSelectionStart();int len = ta .getSelectedText().length(); 度tmp.delete( start , start+len); /// 删除所选中的字符串 ta .setText(tmp.toString()); // 用新文本设置原文本 } });// 复制miCopy .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){tempString = ta .getSelectedText(); /// 得到要复制的内容 , 暂存在 tempString 中 } });// 粘贴miPaste .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){System. System. }catch { System. out .println( exit (0); "file not found"( IOException ie_) out .println( " IO error"System.} exit (0);} }););miExit public System. } });.addActionListener( new ActionListener(){ void actionPerformed(ActionEvent e){ exit (0);/// 退出程序////////////////" new ActionListener(){/// 得到要复制的内容 , 暂存在ta .getText()); // 临时存储 // 得到要删除的字符串的起始位置// 得到要删除的字符串的长catch (FileNotFoundException fe_){// 退出////////////////" 格式 " 菜单: ////////////////////// 字体miFont .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){final Dialog d = new Dialog ( mainFrame , "Font" ); // 新建对话框 d.setLocation( 250 ,250);// 起始位置中部分面板new List (6 , false ); // 字体列表"Plain" ); /// 普通字体 "Bold" ); /// 粗体 "Italic" ); // 斜体////////////////////////// 上部分面板Label l_font = new Label ( "font" ); //font 标签Panel p_1 = new Panel();p_1.add(l_font);p_1.setVisible(true );d.setLayout( new BorderLayout()); // 表格布局 StringBuffer tmp = 文本int start = tmp.insert(start , ta .setText(tmp.toString()); } });new StringBuffer ( ta .getSelectionStart();tempString // 删除miDelete .addActionListener( ta .getText()); // 得到要粘贴的位置 查入要粘贴的内容); // // 用新文本设置原文本 new ActionListener(){ public void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer (文本int start = ta .getSelectionStart(); int len = ta .getSelectedText().length(); tmp.delete( start , start+len); ta .setText(tmp.toString()); } });// 临时存储ta .getText()); // 临时存储// 得到要删除的字符串的起始位置 //得到要删除的字符串的长/// 删除所选中的字符串// 用新文本设置原文本////////////////////////// List font_list =// 添加字体项目font_list.add( font_li st.add( font_list.add(font_list.addItemListener(增加监视器new MyItemListener_font() ); // 字体Panel p_2 = new Panel();p_2.add(font_list);p_2.setVisible( true );////////////////////////// Button ok = new Button ( ok.addActionListener(下部分面板"OK" );new ActionListener(){public voidd.dispose(); } });ok.setSize(actionPerformed(ActionEvent e){new Dimension (20 , 5) );Panel p_3 =p_3.add(ok); p_3.setVisible(new Panel(); // 下部分面板true );// 添加三个面板d.add(p_1 , BorderLayout. NORTH);d.add(p_2 , BorderLayout. CENTER);d.add(p_3 , BorderLayout. SOUTH);d.pack();d.addWindowListener( new WindowAdapter(){ public voidwindowClosing(WindowEvent ee){ d.dispose();}});// 关闭对话框窗口d.setVisible(}});true );// 小写字母转大写miLowtoCapital .addActionListener( new ActionListener(){ public voidactionPerformed(ActionEvent e){String s = ta .getText(); // 得到所输入的文本内容StringBuffer temp = new StringBuffer( "" );for ( int i = 0 ; i<s.length() ; i++){if (( int )s.charAt(i)>=97 &&( int )s.charAt(i)<=122 ){ temp.append(( char )(( int )s.charAt(i)-32));}elsetemp.append(s.charAt(i));}s = new String(temp);ta .setText(s);}});// 大写字母转小写miCapitaltoLow .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){String s = ta .getText(); // 得到所输入的文本内容StringBuffer temp = new StringBuffer( "" );for ( int i = 0 ; i<s.length() ; i++){if (( int )s.charAt(i)>=65 && ( int )s.charAt(i)<=90 ){ temp.append(( char )(( int )s.charAt(i)+32));}elsetemp.append(s.charAt(i));}s = new String(temp);ta .setText(s);}});// 加密miEncrypt .addActionListener( new ActionListener(){ public voidactionPerformed(ActionEvent e){String s = ta .getText(); // 得到所输入的文本内容StringBuffer temp = new StringBuffer( "" );for ( int i = 0 ; i<s.length() ; i++){if (s.charAt(i)>=40 && s.charAt(i)<=125){if (i%2==0){temp.append(( char )(s.charAt(i) + 1 ));} else temp.append(( char )(s.charAt(i) - 1 ));} else temp.append(s.charAt(i));} s = new String(temp);ta .setText(s);}});// 解密miDisencrypt .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){String s = ta .getText(); // 得到所输入的文本内容StringBuffer temp = new StringBuffer( "" );for ( int i = 0 ; i<s.length() ; i++){if (s.charAt(i)>=40 && s.charAt(i)<=125){if (i%2==0){temp.append(( char )(s.charAt(i) - 1 ));}elsetemp.append(( char )(s.charAt(i) + 1 ));}elsetemp.append(s.charAt(i));}s = new String(temp);ta .setText(s);}});帮助 " 菜单: ////////////////////// 关于记事本miAboutNotepad .addActionListener( new ActionListener(){ public voidactionPerformed(ActionEvent e){final Dialog d = new Dialog ( mainFrame , "AboutNotepad"建对话框TextArea t = new TextArea( "\nwelcome to use Notepad " + +"Copyright@Launching " + "\n\n" + "free software" + "\n\n" "v0.99" ); // 添加标签t.setSize( new Dimension ( 5 , 5));t.setEditable( false );d.setResizable( false ); // 不可调整大小 d.add(t);d.pack();d.addWindowListener( new WindowAdapter(){ // 关闭对话框窗口 public voidwindowClosing(WindowEvent ee){d.dispose();}});d.setLocation( 100 ,250); // 起始位置d.setVisible( true );}});}class MyItemListener_font implements ItemListener { // 字体监听器 public void itemStateChanged(ItemEvent e) {id_font = ((java.awt.List)e.getSource()).getSelectedIndex(); ////////////////" ); // 新"\n\n" +switch ( id_font ){case 0:{ta .setFont( new Font( "Times New Roman" ,Font. PLAIN , ta .getFont().getSize()) ); // 普通文字break ;}case 1:{ta .setFont( new Font( "Times New Roman" , Font. BOLD , ta .getFont().getSize()) ); // 粗体文字break ;}case 2:{ta .setFont( new Font( "Times New Roman" ,Font. ITALIC , ta .getFont().getSize()) ); // 斜体文字break ;}}}}////////////////////// public static Notepad test = } 一主函数////////////////////////////// void main (Stri ngarg[]){ newNotepad();///创建记事本//////////////////////////////////////////////////////////////// }运行效果图:。