JAVA实现简易文本编辑器设计

article/2025/11/9 10:52:14

废话不多说直接上代码

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);}
}

 


http://chatgpt.dhexx.cn/article/J14HII82.shtml

相关文章

使用文本编辑器开发一个Java程序的详细步骤

概述 前提&#xff1a; 在学习本博文之前&#xff0c;您需要搭建好Java环境&#xff0c;其中包括1.JDK(Java开发工具箱)的下载&#xff1b;2.JDK环境变量的设置。 就目前对于Java程序的开发现状看的话&#xff0c;都是采用的流行的开发工具&#xff0c;其优点对于开发人员来说…

java 常用富文本编辑器_常用的六个富文本编辑器

1&#xff1a;:功能齐全 tinymce|TinyMCE | The Most Advanced WYSIWYG HTML Editor TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器&#xff0c;由JavaScript写成。它对IE6和Firefox1.5都有着非常良好的支持。 图片发自简书App 2&#xff1a;百度 ueditor|UEditor - 首页…

Java实现百度富文本编辑器UEditor

说起来 实现百度富文本编辑器也是比较简单&#xff0c;主要就是 读取 config.json 但是里面的坑也比较大 下面是我的步骤 以及我遇坑的过程 准备引入的jar包 这两个包找不到的话 可以去官网、也可以加群Java交流群&#xff0c;在群文件自行下载: QQ群&#xff1a;808249297 …

富文本编辑器在Java中使用

一、ckeditor 1&#xff09; 下载ckeditor_3.6.2.zip和ckeditor-java-core-3.5.3.zip两个压缩文件 下载地址:http://ckeditor.com 2&#xff09; 解压缩文件ckeditor_3.6.2.zip和ckeditor-java-core-3.5.3.zip两个文件&#xff0c; 在ckeditor_3.6.2文件中有ckeditor文件…

(JAVA)利用GUI编写简单文本编辑器

今天我们来尝试写一段代码&#xff0c;编写一个简单的文本编辑器&#xff0c;一起来看看吧&#xff01; 首先我们需要用到Java中的继承&#xff08;extends&#xff09;、接口&#xff08;implements&#xff09;。我们将其分为两个文件&#xff1a;一个文件中是所有的布局和逻…

Java设计文本编辑器

阿乐今天敲代码没 Java设计文本编辑器 前言一、实现功能二、扼要代码1.界面程序设计2.文件菜单设计3.编辑菜单栏设计4.格式菜单栏设计 运行截图 前言 利用Java设计一个文本编辑器。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、实现功能 该简易…

Java课设——文本编辑器

来自&#xff1a;https://blog.csdn.net/qq_39169598/article/details/84726959 原创不易&#xff0c;转载请加上作者 一、需求 编程实现一个文本编辑器&#xff0c;使其具有新建、打开、保存&#xff0c;编辑&#xff08;查找、替换、大小写转换等&#xff09;、统计&#…

用Java实现文本编辑器:创建、浏览、编辑文件;剪贴、复制、粘贴;保存、另存为;字符统计;自动换行

Java做文本编辑器的项目&#xff0c;搜了下看到网上有各种版本的Java文本编辑器有很多种&#xff0c;但有的实现很麻烦&#xff0c;最近刚好在做这个实现就也发一个&#xff0c;代码写得很朴素&#xff0c;注释无比详细。 测试过没有Bug&#xff0c;如果有什么问题&#xff0c…

Java实现简单的文本编辑器

1、首先创建一个编辑器EditorDemo类&#xff0c;继承JFrame类&#xff0c;具体实现编码如下&#xff1a; 2、创建菜单栏&#xff0c;新增各个菜单项&#xff0c;比如文件、编辑、帮助等功能&#xff0c;新增createJMenuBar方法如下&#xff1a; /*** 创建菜单栏* param acti…

你知道在深圳一个月花多少钱吗?

在深圳一个月花多少钱&#xff0c;才能活得比较像样&#xff1f; 早上上班挤地铁转公共&#xff0c;7到10块钱&#xff0c;中午在公司叫一份外卖&#xff0c;22块钱到30块钱&#xff0c;晚上加班和同事一起吃饭&#xff0c;25块左右&#xff0c;赶上末班地铁7块钱&#xff0c;房…

开发一个app需要多少钱

APP应用开发主要分为原生APP和HTML5APP开发&#xff0c;使用HTML5开发的app价格不是很高&#xff0c;但是在体验上&#xff0c;访问速度上比原生的有差距。 第一、商城类app报价计算 以H5的封装案例&#xff0c;价格比较便宜&#xff0c;商城价格几万就能搞定&#xff0c;不会超…

一般培训python要多少钱

Python语言相对简单并且非常适合初学者&#xff0c;使初学者可以专注于编程逻辑&#xff0c;而不会陷入晦涩的语法细节中。 学习python提供了比其他任何编程语言更多的职业发展选择。 那么&#xff0c;python培训班一般要多少钱&#xff1f; 伴随着互联网技术的迅猛发展&…

微信小程序开发一个多少钱

小程序开发是当前比较流行的一项技术服务&#xff0c;能够为企业和个人带来巨大的商业价值和社会价值&#xff0c;但是小程序开发费用也是潜在的成本之一。在选择小程序开发服务时&#xff0c;了解开发费用如何计算、影响价格的因素以及如何降低成本等方面的知识&#xff0c;可…

开发一个App大概要多少钱?

结合自己的各种采坑失败经验以及周边个别成功试水经验&#xff0c;站在个人角度给出一些理解。 APP制作有多种形式&#xff0c;所以需要的成本差异较大。 1.寻找外包公司 2.模板APP&#xff08;内行叫SAAS&#xff09; 3.自己组建团队 目录 互联网外包公司的成本构成&#…

chatgpt赋能python:如何让Python暂停?

如何让Python暂停&#xff1f; Python是一种高级编程语言&#xff0c;常用于数据分析、机器学习等领域。在Python编程中&#xff0c;我们经常需要让程序执行暂停一段时间&#xff0c;等待某些操作完成。本文将介绍如何让Python暂停&#xff0c;以及如何在SEO中优化文章标题&am…

独家 | ChatGPT可以解决分级和分类这样的简单机器学习任务

作者&#xff1a;Damir Yalalov 翻译&#xff1a;陈超 校对&#xff1a;赵茹萱本文约1100字&#xff0c;建议阅读5分钟 本文介绍了ChatGPT如何解决简单的机器学习任务并给出了鸢尾花分类和城市预测两个案例。 一句话概括&#xff1a; ChatGPT可以帮助你完成简单的机器学习任务…

分享 7 个不错的 AI 工具

人工智能的世界继续让我们着迷&#xff0c;近期的 OpenAI ChatGPT 掀起人们对人工智能的更大的期待&#xff0c;本文收集了 7 个人工智能 (AI) 工具&#xff0c;其中大部分易于使用&#xff0c;有些更复杂……比如构建 ML 模型。 1. GFP-GAN&#xff1a;照片修复 GFP-GAN 是一…

你们怎么都有自己的聊天机器人?给我也来一个!

点击左上方蓝字关注我们 PaddlePaddle Wechaty AI ChatBot创意赛正在火热进行中&#xff0c;人工智能时代的ChatBot需要具备哪些能力&#xff1f;由你来定义&#xff01;参赛的小伙伴们果然各显神通&#xff0c;快来pick你心中最中意的聊天机器人吧&#xff0c;并献上你珍贵的…

【AI绘画打卡】| 用漫画生成器绘制宅男最爱的二次元美女

二次元美女在日本文化中已经成为一种流行文化和艺术形式&#xff0c;包括漫画、动画等。由于此类作品的富有想象力、多样性和虚构&#xff0c;像二次元美女这样的虚拟角色往往可以充分满足人们的幻想和情感需求。这也是许多宅男在二次元世界寻找自己理想女友的原因之一。 作品…

进程地址空间详解

进程地址空间 文章目录 进程地址空间验证地址空间的基本排布进程地址空间究竟是什么&#xff1f; 地址空间和物理内存之间的关系为什么要存在地址空间&#xff1f; 我们在学习C语言期间&#xff0c;经常可以提及到这些区域&#xff0c;有一个问题&#xff1a;这里的地址空间是内…