用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

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

  1. Java IO练习--在程序中写一个“HelloJavaWorld你好世界“输出到操作系统文件Hello.txt文件中

    package com.kj.test;import cn.hutool.core.io.IoUtil;import java.io.File; import java.io.FileOutputSt ...

  2. 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)

    前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...

  3. java 手编线程池_死磕 java线程系列之自己动手写一个线程池

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...

  4. java 同步锁_死磕 java同步系列之自己动手写一个锁Lock

    问题 (1)自己动手写一个锁需要哪些知识? (2)自己动手写一个锁到底有多简单? (3)自己能不能写出来一个完美的锁? 简介 本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁. ...

  5. 彩票中奖java程序 随机30选7_写一个彩票程序:30选7

    1. 写一个彩票程序:30选7.随机(1~30之间)生成7个随机数,注意不能重复.然后从键盘输入7个数,对比7个数是否与随机数有相同的.最后显示"中了几个号".同时,如果中了7个号 ...

  6. 深读源码-java线程系列之自己手写一个线程池

    问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写的线程池如何测试? 简介 线程池是Java并发编程中经常使用到的技术,那么自己如何动手写一个线程池呢?本文将手把手带你写一个可用的线 ...

  7. 如何手写一个迷你版的RPC

    点击上方"Java后端技术栈"关注 持续推送技术干货 前言 在实际后台服务开发中,比如订单服务(开发者A负责)需要调用商品服务(开发者B负责),那么开发者B会和A约定调用API,以 ...

  8. 手写一个迷你版Spring MVC框架

    前期准备 我这里要写的是一个迷你版的Spring MVC,我将在一个干净的web工程开始开发,不引入Spring,完全通过JDK来实现. 我们先来看一眼工程: 工程代码结构 第一:在annotatio ...

  9. 从零开始写一个迷你版的Tomcat

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | www.jianshu.com/p/dce1ee01fb ...

最新文章

  1. java adobe pdf转word_原来PDF转Word这么简单!现在才知道
  2. ASP.NET超凡的代码控制
  3. Algorithm之OP:OP之GA遗传算法思路理解相关配图资料
  4. 20181009-9 每周例行报告
  5. 云服务器Linux jdk安装详解(centos8)
  6. boost::mpl模块实现replace相关的测试程序
  7. VTK:Filtering之VectorFieldNonZeroExtraction
  8. Java中Arrays.toString ()打印二维数组及Array数组的常用操作
  9. docker 管理工具_详解Docker可视化管理工具shipyard--部署教程及功能展示
  10. 【最新】2021年自然语言处理 (NLP) 算法学习路线!
  11. 免费python自学攻略-Python自学攻略
  12. 配置STP、RSTP以及负载均衡
  13. 【有利可图网】推荐!设计师必备配色宝典!
  14. 软件设计师教程-倪奕文-专题视频课程
  15. k3金蝶 java版本_金蝶KIS旗舰版和K3wise的不同
  16. 速成! | 遗传算法详解及其MATLAB实现
  17. EDA工具对芯片产业的重要性知识科普
  18. 基于PHP的教学管理系统_WEB管理系统_MySQL应用
  19. GATK / 体细胞短变异检测工具Mutect2的使用
  20. 基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究

热门文章

  1. Linux 命令之 unzip -- 解压缩文件
  2. python range函数范围_Python range函数
  3. mysql查看主键别名_MySQL怎么查看约束的别名呢?
  4. python比较两张图片是否一样_opencv_判断两张图片是否相同
  5. c语言编译后找不到exe,在VS 2015命令提示符中找不到c – rc.exe
  6. java实现线程的方式_java多线程实现的四种方式
  7. LeetCode题集大全
  8. c语言编程数学黑洞,一个数学黑洞——6174
  9. scanf在c语言中的作用是什么?
  10. APP 文档服务器,app服务器