返回顶部
首页 > 资讯 > 后端开发 > Python >教你用JAVA写文本编辑器(四)
  • 514
分享到

教你用JAVA写文本编辑器(四)

2024-04-02 19:04:59 514人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

其实写到这里,我已经差不多断气了。。。 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我

其实写到这里,我已经差不多断气了。。。

常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一)

现在我们只差最后一部分了,断气前一定要把它搞完!

再来分析一下,最后一个Menu,里面有几个按钮,不知道大家发现没有,有两个还是特别简单,一个是新建,一个是退出。新建我们再实例化一下父窗口就可以了,但是这里有bug,关闭任一子窗口父窗口都会跟着关掉。另一个是退出,直接dispose()就好了。在监听器里处理一下:

这里就不需要贴太多上下文代码了,找到主窗口.java 找到该函数就可以


@Override
 public void actionPerfORMed(ActionEvent e) {
  if (e.getSource() == item_about) {
   new about_Window();
  }else if (e.getSource() == item_Word_format) {
   new about_Format();
  }else if (e.getSource() == item_new) {
   new test5(); // 选中新建 new一个新窗口 ,有bug,关闭任意子窗口父窗口也会跟着关闭
  }else if (e.getSource() == item_exit) {
   this.dispose();
  }
 }

在JAVA写文本编辑器(一)我们有分析过,有一个封装好的工具JFileChooser可以直接调用。

其实消化完超链接里的这篇组件介绍,对于文件的存取已经没什么问题了。接下来我们添加监听器,监听器里添加对应的方法:

当然要先在类内声明JFileChooser


@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == item_about) {
			new about_Window();
		}else if (e.getSource() == item_word_format) {
			new about_Format();
		}else if (e.getSource() == item_new) {
			new test5(); // 选中新建 new一个新窗口 ,有bug,关闭任意子窗口父窗口也会跟着关闭
		}else if (e.getSource() == item_exit) {
			this.dispose();
		}else if (e.getSource() == item_open) {
			openFile();
		}else if (e.getSource() == item_save) {
			saveFile();
		}
	}

SaveFile方法:


private void saveFile() {
		File file = null;
		int result ;
		fileChooser = new JFileChooser("C:\\");
		fileChooser.setApproveButtonToolTipText("保存"); // 设置确认按钮的现实文本
		fileChooser.setDialogTitle("保存文件"); // 设置title
		result = fileChooser.showOpenDialog(rootPane); // 设置Dialog的根View 根布局
		
		//--------------------------------------------------------------------------
		if(result == JFileChooser.APPROVE_OPTION) {
			file = fileChooser.getSelectedFile(); // 若点击了确定按钮,给file填文件路径
		}
		
		//--------------------------------------------------------------------------
		
		//---------------这里有严重bug,对于字符写入文件没问题,但是在读取中文字符的时候会出现乱码-----------
		//--------------------------------------------------------------------------
		
		try{
			OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(file),"UTF-8"); // 对字符进行编码转换
			BufferedWriter writer = new BufferedWriter(write);
			String content = edit_text_area.getText();
			writer.write(content);
			writer.close();
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		
	}

OpenFile方法:



	private void openFile() {
		File file = null;
		int result ;
		fileChooser = new JFileChooser("C:\\");
		fileChooser.setApproveButtonToolTipText("确定"); // 设置确认按钮的现实文本
		fileChooser.setDialogTitle("打开文件"); // 设置title
		result = fileChooser.showOpenDialog(rootPane); // 设置Dialog的根View 根布局
		
		//--------------------------------------------------------------------------
		if(result == JFileChooser.APPROVE_OPTION) {
			file = fileChooser.getSelectedFile(); // 若点击了确定按钮,给file填文件路径
		}
		
		//--------------------------------------------------------------------------
		//--------------------下面对文件进行处理,把内容装到父窗体的textarea中--------------------
		
		//---------------这里有严重bug,对于读取中文字符会出现乱码-------------------------------
		//--------------------------------------------------------------------------
		
		if(file.isFile() && file.exists()) {
			BufferedReader reader = null;
			try {
				InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file),"UTF-8");
				reader = new BufferedReader(inputStreamReader);
				
				String readLine = "";
				while ((readLine = reader.readLine()) != null) { // 对BufferedReader数据一行行读
					//edit_text_area.append(readLine); 这样写会出现所有的句子都出现在同一行的情况,所以在每次append的时候在后面加一个换行符
					edit_text_area.append(readLine+'\n');  //对edit_text_area 一行行加
				}
				
				reader.close(); // 关闭reader
				
			}catch (IOException e) {
				e.printStackTrace();
				//TipDialog tmpDialog = new TipDialog(this,"错误文件",true,"文件夹名称错误,请重新检查!");
			}
			
			
		}
	}

其实这里的两个方法都很相似,通过FileChooser可以得到选中的文件的路径,然后通过File 把路径拿到,在执行一下常规的文件读写操作。注意一定要处理IO操作异常。

如果大家在注意的话可以看到其实我的IO是有一些操作注释掉的,注释掉的部分是按照使用JFileChooser组件写的读写操作,但是经过测试,发现对于中文字符没有编码,所以存入之后再读取就是乱码。所以采用了另外一种写法。

到此为止,整个文本编辑器就已经完成了。可能有的同学看起来觉得乱,所以我会在博客上传源码,需要的同学可以直接下载下来看。JAVA写文本编辑器源码

总结

到此这篇关于用JAVA写文本编辑器的文章就介绍到这了,更多相关JAVA写文本编辑器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 教你用JAVA写文本编辑器(四)

本文链接: https://lsjlt.com/news/157386.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 教你用JAVA写文本编辑器(四)
    其实写到这里,我已经差不多断气了。。。 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(一)
    目录前言思路分析:具体实现总结前言 这里用swing ,awt写的。 我们大概要做成一个电脑的记事本那样的一个编辑器。可以调整字体,字号,颜色。能够打开、保存文件,新建窗口,点击退出...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(二)
    目录这是编辑器第一章 JAVA写文本编辑器(一) ,需要的同学了解一下。 这一章我们来处理一下JMenuBar里的item的事件响应,首先从最简单的item关于开始。 为什么说这个简...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(三)
    大家好,接下来的部分可能有点乱,但是并不复杂,我希望我能尽量给大家捋清楚思路。 老套路,这是我的前两篇系列,需要的同学了解一下: JAVA写文本编辑器(二) JAVA写文本...
    99+
    2024-04-02
  • 怎么用JAVA写文本编辑器
    本篇内容介绍了“怎么用JAVA写文本编辑器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么说这个简单,因为它需要完成的功能很少,只是出来...
    99+
    2023-06-25
  • 如何用JAVA写文本编辑器
    本篇内容主要讲解“如何用JAVA写文本编辑器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用JAVA写文本编辑器”吧!前言这里用swing ,awt写的。我们大概要做成一个电脑的记事本那样的...
    99+
    2023-06-25
  • 如何使用JAVA写文本编辑器
    本篇内容介绍了“如何使用JAVA写文本编辑器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!再来分析一下,最后一个Menu,里面有几个按钮,不...
    99+
    2023-06-25
  • 用JAVA写文本编辑器的方法是什么
    本篇内容介绍了“用JAVA写文本编辑器的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面我们要实现的是一个点击选择文本格式的窗口...
    99+
    2023-06-25
  • 使用Python读写文本文件及编写简单的文本编辑器
    学习raw_input和argv是学习读取文件的前提,你可能不能完全理解这个练习,所以认真学习并检查。如果不认真的话,很容易删除一些有用的文件。 这个练习包含两个文件,一个是运行文件ex15.py,一个是e...
    99+
    2022-06-04
    编辑器 文本文件 文本
  • 教你用Java GUI实现文本文件的读写
    目录一、实验题目二、分析三、实现四、全部代码一、实验题目 二、分析 实验要求为: 实现一个界面,界面中包含一个文本显示区和两个按钮(存档和读档) 读档按钮作用是打...
    99+
    2024-04-02
  • 常用的java文本编辑器有哪些
    常用的Java文本编辑器有:1. Eclipse2. IntelliJ IDEA3. NetBeans4. Visual Studi...
    99+
    2023-08-16
    java
  • 好用的java文本编辑器有哪些
    以下是一些好用的Java文本编辑器:1. Eclipse:Eclipse 是最流行的 Java 集成开发环境之一,具有强大的代码编辑...
    99+
    2023-08-29
    java
  • java如何实现文本编辑器
    要实现一个文本编辑器,你可以使用Java的图形用户界面(GUI)库,例如Swing或JavaFX。首先,创建一个主要的窗口,可以使用...
    99+
    2023-09-06
    java
  • Ubuntu中怎么使用文本编辑器编辑文件
    在Ubuntu中,可以使用命令行文本编辑器来编辑文件,常用的命令行文本编辑器有nano和vim。 使用nano编辑文件: 打开终端...
    99+
    2024-03-05
    Ubuntu
  • 教你编写Pipeline脚本的方法
    目录前言调试 grok 和 pipelineGrok 通配搜索多行如何处理Pipeline 字段命名注意事项完整 Pipeline 示例如何在一个 Pipeline 中切割多种不同格...
    99+
    2022-11-13
    Pipeline 脚本 编写 Pipeline 脚本
  • Vi文本编辑器怎么用
    这篇文章主要介绍了Vi文本编辑器怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装 Vi如果你运行的是 Linux、macOS 或 BSD,那么你已经安装了 ...
    99+
    2023-06-15
  • linux常用的文本编辑器
    Linux常用的文本编辑器有以下几个:1. Vim:Vim 是一个功能强大的文本编辑器,它支持多种编辑模式,可以方便地编辑各种文本文...
    99+
    2023-09-20
    linux
  • linux文本编辑器怎么用
    Linux中有许多文本编辑器可供选择,每个编辑器都有自己的特点和用法。以下是一些常用的Linux文本编辑器及其简单用法:1. Vim...
    99+
    2023-09-06
    linux
  • 如何在文本编辑器中编辑HTML文件
    HTML是一种标记语言,用于创建网页和其他文档。如果你想学习HTML,在你的计算机上需要有一个文本编辑器,这篇文章将介绍如何在文本编辑器中编辑HTML文件,并提供一些提示和技巧。选择文本编辑器首先,你需要选择一个文本编辑器,它应该是可以在你...
    99+
    2023-05-14
  • 教你编写bat脚本Windows批处理
    目录常见用途bat命令速查常用参数echo注释Rem使用::声明dir :获取目录内容> :将输出重定向到文件变量命令行参数set命令字符串数值局部变量 vs 全局变量环境变量...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作