废话不多说直接上代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.plaf.FontUIResource;
import javax.swing.text.Document;
import java.io.*;
import java.util.Enumeration;public class JTextAreaTester extends JFrame implements ActionListener {private JButton btnOpen, btnSave, btnCopy, btnPaste, btnCut, btnSelectAll, btnClearAll;private JTextArea ta;private boolean isTextModified; // 文本被编辑的标记private String file = ""; // 文件名private final static String APP_NAME = "简易文本编辑器";public JTextAreaTester() {super(APP_NAME);this.setSize(500, 300);this.setDefaultCloseOperation(EXIT_ON_CLOSE);ta = new JTextArea();ta.setLineWrap(true); // 自动换行ta.setFont(new Font("宋体", Font.PLAIN, 16));JScrollPane sp = new JScrollPane(ta); // 根据需要自动显示滚动条JButton btnOpen = new JButton("打开文件");btnOpen.setActionCommand("打开文件");JButton btnSave = new JButton("保存文件");btnSave.setActionCommand("保存文件");JButton btnCopy = new JButton("复制");btnCopy.setActionCommand("复制");JButton btnPaste = new JButton("粘贴");btnPaste.setActionCommand("粘贴");JButton btnCut = new JButton("剪切");btnCut.setActionCommand("剪切");JButton btnSelectAll = new JButton("全选");btnSelectAll.setActionCommand("全选");JButton btnClearAll = new JButton("清空");btnClearAll.setActionCommand("清空");// 为组件注册动作事件监听器btnOpen.addActionListener(this);btnSave.addActionListener(this);btnPaste.addActionListener(this);btnSelectAll.addActionListener(this);JPanel panel = new JPanel(); // 按钮放置在一个面板内FlowLayout layout = (FlowLayout) panel.getLayout();layout.setHgap(2);panel.add(btnOpen);panel.add(btnSave);panel.add(btnCopy);panel.add(btnPaste);panel.add(btnCut);panel.add(btnSelectAll);panel.add(btnClearAll);this.add(sp, "Center");this.add(panel, "South");// 给文本框的文档添加文档监听器Document doc = ta.getDocument();doc.addDocumentListener(new DocumentListener() {public void changedUpdate(DocumentEvent e) {}public void insertUpdate(DocumentEvent e) {setTitle(APP_NAME + "-" + file + "(*)"); // 设置修改标记isTextModified = true; // 设置修改标记}public void removeUpdate(DocumentEvent e) {setTitle(APP_NAME + "-" + file + "(*)"); // 设置修改标记isTextModified = true; // 设置修改标记}});}public void actionPerformed(ActionEvent e) {String cmd = e.getActionCommand();if (cmd.equals("打开文件")) { // 打开文本文件StringBuffer sb = new StringBuffer("");try {BufferedReader br = new BufferedReader(new FileReader("学校简介.txt"));String str = br.readLine();while (str != null) {sb.append(str + "\n");str = br.readLine();}br.close();ta.setText(sb.toString());this.setTitle(APP_NAME + "-" + file); // 窗体标题初始化isTextModified = false; // 重置修改标记} catch (Exception e1) {ta.setText(e1.getMessage());}} else if (cmd.equals("保存文件")) { // 保存文本// TODO: 保存文件的代码this.setTitle(APP_NAME + "-" + file); // 窗体标题重置isTextModified = false; // 保存后修改} else if (cmd.equals("复制")) {ta.paste();}}// 初始化全局字体private static void initGlobalFont() {FontUIResource fontUIResource = new FontUIResource(new Font("宋体", Font.PLAIN, 14));for (Enumeration<Object> keys = UIManager.getDefaults().keys(); keys.hasMoreElements();) {Object key = keys.nextElement();Object value = UIManager.get(key);if (value instanceof FontUIResource) {UIManager.put(key, fontUIResource);}}}public static void main(String[] args) {initGlobalFont(); // 初始化全局所有字体JTextAreaTester frm = new JTextAreaTester();frm.setVisible(true);}
}

JAVA实现简易文本编辑器设计相关推荐

  1. Java swing 简易文本编辑器

    1.介绍几个相关的网址 精通Java Swing程序设计 BeautyEye社区 2.主要功能 tab页能够关闭(快捷键:ctrl+w,鼠标点击x) JMuneItem和Button快键键的几种绑定 ...

  2. c语言课程设计文本编辑器实验报告6,C课程设计简易文本编辑器.doc

    C课程设计简易文本编辑器 目录 第一章 课程设计目的和要求1 1.1课程设计的目1 1.2 基本要求1 第二章 课程设计任务内容2 2.1 设计背景2 2.2简易文本编辑器设计内容2 第三章 详细设计 ...

  3. java简单文本编译器_java -简易文本编辑器

    import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; /** * Title:java ...

  4. VB顺序文件案例:简易文本编辑器

    文章目录 一.顺序文件概述 二.案例演示 - 简易文本编辑器 (一)运行效果 (二)实现步骤 1.用户界面设计 (1)创建标准EXE工程 (2)添加一个文本框 (3)添加四个按钮 (4)添加一个公用对 ...

  5. c语言实现简易文本编辑器

    本程序要求完成一个简易文本编辑器,能够完成文本的录入.编辑.删除.查找,并能够完成文件的存取. 在文本编辑软件中把用户输入的所有文本内容作为一个字符串.虽然各种文本编辑软件的功能有强弱差别,但是基本操 ...

  6. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  7. C语言程序设计-简易文本编辑器

    第一部分:引言 简易文本编辑器是一个面向用户的系统服务程序,广泛用于源程序的输入.删除.替换.查找.修改等一系列操作,甚至用于报刊和书籍的编辑排版以及办公室的公文书信的起草和润色,是一个比较实用的应用 ...

  8. 基于java平台简易计算器_基于java的简易计算器的设计

    基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C ...

  9. java html文本编辑器,基于Java WebHTML在线文本编辑器解决方案.doc

    基于Java WebHTML在线文本编辑器解决方案 基于Java WebHTML在线文本编辑器解决方案 摘要:FckEditor作为众多优秀HTML在线文本编辑器之一,以其支持多语言的优势而受到众多国 ...

  10. java集成富文本编辑器UEditor

    JAVA集成富文本编辑器UEditor 集成前说明 集成UEditor 一.UEditor下载 二.UEditor迁入项目 三.引入ueditor中的js 四.初始化UEditor 五.实现图片上传 ...

最新文章

  1. 使用c#实现tcp的连接和发送接收数据
  2. qt设置mysql最大连接数_MySQL服务器最大连接数的合理设置
  3. 02-cache的基本概念原理扫盲
  4. openresty开发系列39--nginx+lua实现接口签名安全认证
  5. arm的存储保护单元MPU
  6. spring整合webservice
  7. python文件解除占用_如何使用Python解锁锁定的文件和文件夹(mac)
  8. 计算机系统的备份与还原实验报告,数据库《数据备份与还原》实验报告.doc
  9. qdu-凑数题(01背包)
  10. vue store的值刷新就被覆盖解决方案
  11. Android根据分辨率进行单位转换-(dp,sp转像素px)
  12. java宝马奔驰汽车正在生产代码_Java的三种工厂模式
  13. 国内一些比较大型的IT软件外包公司名单
  14. 在Idea中使用Git后,类名各种颜色代表的含义
  15. excel高级筛选怎么用_Excel 筛选之“高级筛选”(绝对不可错过的强大工具)
  16. pythoneducoder苹果梨子煮水的功效_苹果梨子汤的功效
  17. 大工21春《土木工程实验(二)》实验报告
  18. 谷歌浏览器驱动_谷歌驱动的配置与测试
  19. printf中%d,%c,%s,%x各代表什么
  20. Python基础教程读书笔记(第5章—第6章:条件、循环和其他语句;抽象)

热门文章

  1. 截止到2022年9月底可用的与大屏可视化相关的网站和网页
  2. python调用arcpy函数_AGS Python开发-ArcPy开发基础
  3. 优秀课程案例:使用Scratch制作坦克大战经典版!
  4. Qt6.2.1在线安装教程
  5. python怎么使用自定义停用词_在Python中使用NLTK删除停用词
  6. 阿里P7亲自教你!java开发如何包装自己的简历
  7. 【知识点总结】大数据技术原理与应用
  8. Redis开发与运维 笔记一
  9. 【正点原子STM32连载】第三章 开发环境搭建 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  10. 【转载】SI 9000 及阻抗匹配学习笔记(一)