java实现迷你计算机,用JAVA写一个迷你编辑器.doc

用JAVA写一个迷你编辑器

用JAVA编写一个迷你编辑器

WINDOWS的记事本程序是非常方便的一个文字处理工具,用它来编辑纯文本文件快捷而灵巧。我用JAVA写了一个编辑器程序,模仿“记事本”的功能。这不是为了替代记事本,而是因为下列两个目的:

1 编辑器中拥有的功能是一切与文字相关的软件的基本功能,其许多功能的实现方法可以为其它程序所借鉴。甚至可以发展成一个独立的实用程序。2 因为编程中用到多方面的知识,所以可作为初学者综合所学知识的一次实践机会。

本程序命名为Notepad.java,用命令行:java Notepad 运行后呈现如下的界面图:

一 本程序的功能

本程序只有一个菜单条和一个带滚动条的编辑区域。菜单条有如下功能”

文件菜单,包含新建、打开、保存和另存为,退出等菜单项,用法与WINDOWS的记事本相仿,如弹出文件的打开对话框、保存对话框等。

编辑菜单,用以完成文字的复制、粘贴和删除任务。

格式菜单,设置文本自动换行、设置字体和输入当前日期。

显示帮助的内容和Abort信息。

二 用户界面的设计

编程分两步走。第一步先设计好如上的用户界面,编译通过后程序有了一个空壳。第二步在逐个给菜单项写功能代码,就是给每个菜单项编写一个监听器类,并添加到相应的菜单项上。

㈠ 菜单和文本框的设计

菜单和菜单项的声明在类开始处定义,创建菜单和文本区则在类的构造器中完成。菜单的声明如下:

public class Notepad extends JFrame { private JTextArea text = new JTextArea(30, 48); private Clipboard clipbd = ? getToolkit().getSystemClipboard(); private String fileName = "未命名" ;private boolean isNamed = false ;private String content = "" ;

private JMenuBar mb = new JMenuBar(); private JMenu ?file = new JMenu("文件") , ?edit = new JMenu("编辑"), ?style= new JMenu("格式"), ?help = new JMenu("帮助");

private JMenuItem fileItem[] = {?new JMenuItem("新建"), ?new JMenuItem("打开"), ?new JMenuItem("保存"), ?new JMenuItem("另存为"),?new JMenuItem("退出"),}; private JMenuItem editItem[] = {?new JMenuItem("复制"), ?new JMenuItem("粘贴") , ?new JMenuItem("删除"), ?new JMenuItem("全选"),} ;private JMenuItem styleItem[] = {?new JMenuItem("自动换行"), ?new JMenuItem("字体") , ?new JMenuItem("日期"),?new JMenuItem("Java"),} ;private JMenuItem helpItem[] = {?new JMenuItem("帮助"), ?new JMenuItem("关于"),} ;

声明了文本区text作为编辑区域,声明了剪贴板对象Clipboard clipbd用于编辑操作。fileName保存“打开或保存”的文件名,content? 用来保存从文件读写的内容,boolean isNamed 用来记录编辑区中的内容是否和一个文件相关联。如果文件已经有了名字,“保存”菜单就直接写入该文件,否则要先打开“保存对话框”。新建文件时 isNamed 为假,窗口标题显示“未命名”。接着就生命了菜单条mb 和 四个菜单file,edit,style, help 以及他们的菜单项。用fileItem[]来定义菜单项,便于以后要扩充菜单,这要增加一行 new JMenuItem("XXX"),和添加一个监听类XXXl 就可以了。、

㈡ 在构造器中构建视窗

在构造器中创建菜单,假如文本区,各菜单项添加监听器。

public Notepad() {?setJMenuBar(mb); // 窗口设置菜单条?Container cp = getContentPane() ;?cp.add(new JScrollPane(text)); // 添加有滚动条的文本区?text.set

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cypress测试脚本_Cypress 自动化测试学习使用

安装mkdir cypress-startnpm install# 进入创建的项目目录cd /your/project/pathcd cypress-startnpm install cypress --save-devyarn addcd /your/project/pathcd cypress-startyarn add cypress --dev打开运行cpress./node_modules/.bin/cypress open或者使用npm bin$(npm b…

hadoop综述_Hadoop书籍赠品–综述

hadoop综述各位极客, Packt Publishing关于Apache Hadoop 的书籍赠品已经结束。 您可以在这里找到比赛的原始帖子。 获奖者 将会获得这本书奖的6位幸运获奖者是(姓名出现在他们的电子邮件中): Hadoop真实世界解决方案食谱 塞…

便捷式计算机无线功能按钮,TP-Link TL-MR13U便携式无线路由器Client模式设置

本文介绍了TP-Link TL-MR13U便携式无线路由器,在“客户端模式(Client)”下的设置方法。TL-MR13U工作在“客户端模式(Client)”时,主要作用是用来接收无线WiFi信号,把无线WiFi信号转换为有线网络,实现让台式电脑上网。TP-Link TL-M…

Java命令行界面(第6部分):JOpt简单

JOpt Simple的主页将这个基于Java的库称为“用于解析命令行选项的Java库,例如您可能传递给调用javac的Java库,”该Java库试图“使用POSIX getopt()的命令行选项语法)和GNU getopt_long() 。” 这…

矩阵相乘的strassen算法_矩阵乘法的Strassen算法+动态规划算法(矩阵链相乘和硬币问题)...

矩阵乘法的Strassen这个算法就是在矩阵乘法中采用分治法,能够有效的提高算法的效率。先来看看咱们在高等代数中学的普通矩阵的乘法两个矩阵相乘上边这种普通求解方法的复杂度为: O(n3)也称之为暴力求解或者朴素求解这是暴力求解的代码,三重循环&#xff…

计算机c盘哪些东西可以清理,细说电脑c盘哪些文件可以删除

有些网友反映,自己看C盘里的文件太多了,电脑又太卡,情急之下就把里面的东西删掉了,现在系统都不能用了。为了避免大家再入这个坑,我给大家讲一下哪些是C盘里的无用文件,并且删除后不会影响系统使用C盘是指电…

springboot 注解动态赋值_SpringBoot 使用 @Value 注解读取配置文件给静态变量赋值

1、application.properties 配置文件CxU免费资源网mail.usernamexue163.commail.passwordxuemail.hostsmtp.163.commail.smtp.authtrue2、给普通变量赋值,直接在变量上添加 Value 注解CxU免费资源网import org.springframework.beans.factory.annotation.Value;publ…

软件测试度量计算方法有哪些,软件测试度量(三)

进度差异趋势6.4.3 范围变化(SC)这个指标指出如何固定测试范围。下面总范围 以前的范围 新范围,如果范围扩大的话总范围 以前的范围 - 新范围,如果范围缩小的话一个发布版本范围变化趋势7、结论度量是评估的重要组成部分以及任何业务改进的基础。是应…

ceph与hdfs的比较_分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?

过去两年,我的主要工作都在Hadoop这个技术栈中,而最近有幸接触到了Ceph。我觉得这是一件很幸运的事,让我有机会体验另一种大型分布式存储解决方案,可以对比出HDFS与Ceph这两种几乎完全不同的存储系统分别有哪些优缺点、适合哪些场…

使用带有OAuth的Spring Security保护资源

1.简介 在本教程中,我们将研究如何使用Spring Security和OAuth来基于路径模式( / api / ** )保护服务器上的管理资源。 我们配置的另一个路径模式( / oauth / token )将帮助已配置的授权服务器生成访问令牌。 请注意&a…

2080ti服务器支持什么系统,2080ti深度学习性能

AI开发平台ModelArtsModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周…

pythonset是什么类型的游戏_Python集合(set)类型的操作

原文详见:http://blog.csdn.net/business122/article/details/7541486python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等…

服务器选购seo优化规则,网站seo优化注意事项1—域名和服务器选择

原标题:网站seo优化注意事项1—域名和服务器选择一个网站的域名和服务器是很重要的,这关乎网站的优化前提,作为一个seo优化人员必须要对自己网站的域名和服务器有所了解。网站seo优化注意事项1:域名的关联性域名怎么选择呢&#x…

as cast float server sql_Sql Server中Float格式转换字符串varchar方法(转)

SELECT CONVERT(varchar(100), CAST(testFloat AS decimal(38,2)))SELECT STR(testFloat, 38, 2)从Excel中导入到sql2000,有一列“联系方式”变成了float类型,我想转换成nvarchar类型,用下面的语句select convert(nvarchar(30),convert(int,联…

openjpa_OpenJPA:内存泄漏案例研究

openjpa本文将提供完整的根本原因分析详细信息以及解决影响Oracle Weblogic Server 10.0生产环境的Java堆内存泄漏(Apache OpenJPA泄漏)的方法。 这篇文章还将演示在管理javax.persistence.EntityManagerFactory生命周期时遵循Java Persistence API最佳实…

美国凯斯西储大学计算机硕士专业怎么样,在凯斯西储大学读硕士大约需要多少花费?...

凯斯西储大学是美国著名大学之一,始建于1826年,坐落于俄亥俄州的克里夫兰,是一所以独立研究闻名的世界顶级私立大学,美国一级国家级大学。美国作为当今世界留学费用最高的国家之一,费用问题是所有赴美留学的学生都非常…

ffmpeg 缩放算法_图像尺寸调整算法介绍并手动实现近邻算法

课程更新完毕,后面会根据同学的意见维护此课程课程讲师:【夏曹俊】课程基于opencv**版3.2讲解,全部使用**的c接口,旧的接口会逐步被opencv抛弃,所以我们学习还是尽量学习新的接口,QT使用**的5.8版本&#x…

win7如何修改dns服务器地址,Win7系统DNS怎么设置?Win7系统DNS设置方法

Win7系统DNS怎么设置?众所周知,DNS地址是一个域名服务器地址,它可以把用户的网站地址解析成IP地址。如果这个服务器出现问题,可能就上不了网了。我们在使用Win7系统的时候,就是因为域名解析服务器不能将要访问的域名解析为正确的…

gradle web_简单的Gradle Web应用程序

gradle webGradle通过“ war”和“ jetty”插件轻松支持Java Web应用程序。 本教程将向您展示如何快速创建一个简单的Java Servlet Web应用程序。 我们的基本项目结构将是: basic-websrcmainjavacomcodetutrHelloWorldServlet.javawebappWEB-INFweb.xml首先&#x…

密钥文件登录服务器,密钥文件登录云服务器

密钥文件登录云服务器 内容精选换一换远程桌面协议(Remote Desktop Protocol,RDP),是微软提供的多通道的远程登录协议。本节为您介绍如何使用RDP文件远程登录Windows弹性云服务器。从管理控制台下载的RDP文件对应唯一的云服务器,当前RDP文件命…