java简易记事本开发

简易记事本Java程序开发指南 Java是一种广泛使用的面向对象的编程语言,它允许开发者创建可跨平台运行的应用程序。Java语言因其”一次编写,到处运行”的能力而受到青睐,这得益于Java虚拟机(JVM)的存在。Java被广泛应用于企业级应用开发、移动应用(Android)、Web开发等领域。Java Swing是用于Java图形用户界面(GUI)编程的工具包。Swing提供了一套丰富的GUI组件,允许开发者创建复杂和跨平台的桌面应用程序。下面列出了一些常用的Swing组件,并简要描述了它们的主要用途。JButton。 阅读详情

今天闲来没事,自己写了一个简易的记事本,需要java GUI编程,一个文本输入框JTextArea,一条菜单条JMenuBar,两个JMenu,两个JMenuItem,然后就是模仿你自己电脑自带的记事本那样大致写,模仿他的布局。利用java中的文件操作,实现记事本的功能。(因为这个记事本就是对文本的操作,自己用BufferedReader,BufferedWriter,效率高)

这里我先把代码附在这里:

package com.notepad;
/*
 * 我的记事本(功能+开发)
 */
import java.io.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Note extends JFrame implements ActionListener{

	//创建组件
	JTextArea jta = null;
	//创建菜单条
	JMenuBar jmb = null;
	//第一个JMenue
	JMenu jm1 = null;
	//第二个JMenue
	JMenu jm2 = null;
	//定义JMenuItem(JMenue里边具体的选项)
	JMenuItem jmi1 = null;
	JMenuItem jmi2 = null;
	
	//主函数
	public static void main(String[] args) {
		Note n1 = new Note();
	}
	
	//在构造函数中完成初始化
	public Note(){
		jta = new JTextArea();
		jmb = new JMenuBar();
		jm1 = new JMenu("文件");
		jm2 = new JMenu("编辑");
		jmi1 = new JMenuItem("打开");
		jmi2 = new JMenuItem("保存");
		
		//设置JTextArea的字体
		Font mf = new Font("隶书",Font.PLAIN,20);
		jta.setFont(mf);
	
		//注册监听
		jmi1.addActionListener(this);
		jmi2.addActionListener(this);
		
		//设置监听名称
		jmi1.setActionCommand("open");
		jmi2.setActionCommand("save");
		
		//设置助记符
		jmi1.setMnemonic('F');
		jmi2.setMnemonic('S');
		
		//添加JMenuBar,并且逐级添加菜单
		this.setJMenuBar(jmb);
		jmb.add(jm1);
		jmb.add(jm2);
		jm1.add(jmi1);
		jm1.add(jmi2);
		
		//添加
		this.add(jta);
		this.setSize(800,600);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	

	@Override
	public void actionPerformed(ActionEvent arg0) {
		
		if(arg0.getActionCommand().equals("open")){
			
			JFileChooser jfc1 = new JFileChooser();
			//设置名字
			jfc1.setDialogTitle("请选择文件...");
			//使用默认方式
			jfc1.showOpenDialog(null);
			//显示
			jfc1.setVisible(true);
			
			//得到用户选择文件的全路径
			String filename1 = jfc1.getSelectedFile().getAbsolutePath();
			//System.out.println(filename);
			
			BufferedReader br = null;
			FileReader fr = null;
			char[] buf = new char[1024];
			try{
				fr = new FileReader(filename1);
				br = new BufferedReader(fr);
				String s = "";
				String allCon = "";
				//从文件中读取信息,并显示在JTextArea控件中
				while((s=br.readLine())!=null){
					allCon = allCon + s + "\r\n";
				}
				jta.setText(allCon);
			}catch(Exception e){
				e.printStackTrace();
			}finally{
				
				try {
					//文件流一定要关闭
					br.close();
					fr.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}else if(arg0.getActionCommand().equals("save")){
			
			//出现保存对话框
			JFileChooser jfc = new JFileChooser();
			jfc.setDialogTitle("另存为...");
			//按照默认方式显示
			jfc.showSaveDialog(null);
			jfc.setVisible(true);
			
			//得到文件全路径
			String filename2 = jfc.getSelectedFile().getAbsolutePath();
			
			//准备到写入指定文件即可
			BufferedWriter bw = null;
			FileWriter fw = null;
			try{
				fw =new FileWriter(filename2);
				bw = new BufferedWriter(fw);
				bw.write(this.jta.getText());
			}catch(Exception e){
				e.printStackTrace();
			}finally{
				try {
					bw.close();
					fw.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

我在代码里加了很多的注释,也是自己写程序的理解吧,但是自己在写的时候还是遇到问题了,在关闭文件流的时候,关闭的顺序不对会报异常,因为用到了BufferedReader
和BufferedWriter,所以还要使用FileReader和FileWriter,在关闭文件流的时候,先要关闭BufferedReader,BufferedWriter的对象,然后关闭FileReader,FileWriter的对象,否则
就会报异常Stream closed(流关闭)导致文件无法正常操作。这里我也想介绍一下JFileChooser的简单用法,这就是我们打开文件,或者保存文件显示选择的窗口,然后进行相应
的操作。因为涉及到相应的按钮点击之后响应操作,就需要添加事件监听(注意:要添加时间监听,并且设置时间监听的名称),在程序里自己还简单的设计了两个助记符,就是
打开文件,保存问价时的文件助记符(Alt+shift+字母)。
打开文件的窗口时方法showOpenDialog(null)(对象调用,默认方式),保存窗口showSaveDialog(null,默认方式)(对象调用),注意还要设置他们的可视化,就是显示出来
setVisible(true),然后相关的文件操作我自己就不在这里过多的赘述了,在程序中已经很详细的解释了。
这里是相应的截图:

自己写的,测试运行成功,希望对你有帮助。如果遇到什么问题,希望评论,一起解决。

java 简单记事本 java 记事本 主要功能:打开,另存为,保存,打印,页面设置,编辑 立即下载

相关推荐

java日历记事本程序

netbeans项目 日历+记事本+课程表+计时提醒功能+导出导入课程列表

GUI界面操作-实现简单的记事本

wxPython编写界面程序的基本流程: 1、import wx #导入wxPython的包 2、class App(wx.App) #子类化一个应用程序类 3、def onInit(self) #定义应用程序类的初始化方法 4、app = App() #实例化一个应用程序类 5、app.MainLoop() #进入这个应用程序的主事件循环 下面是一个例子: import...

weixin_30556161的博客 394

泛微ecology9二次开发-附件上传接口实战:从表单创建到数据库存储解析

本文详细解析了泛微ecology9二次开发中的附件上传接口实战,从测试环境搭建、数据库表结构解析到接口代码实现,提供了全面的开发指南。重点介绍了文件上传的核心逻辑、常见问题排查及高级应用场景,帮助开发者高效实现附件上传功能并优化系统性能。

weixin_30836759的博客 477

java (GUI) 制作简单记事本

java(GUI)实现记事本制作并实现部分功能。

木子李 4862

【QGIS】【OsGeo4w】安装方法

every blog every motto: You will never know unless you try 0. 前言 因为目前要使用QGIS,然而环境配置就整了大半天,哎,进行简单记录,方便自己方便他人。 一共分为两种方式安装: 独立安装包 网络安装包(下载osgeo4w-setup) QGIS提供了不同的版本: 长期发行版(LTR) 最新版(LR) 开发人员版本(DEV,母版或测试版) 说明: 本文推荐第二种 1. 正文 1.1 下载osgeo4w 下载链接 下载完成: 1.2

胡侃有料的博客 2万+

指标异常检测和诊断

贡献度,即用定量衡量的方式来说明:一个指标YYY的异动△Y△Y△Y,具体是由其中哪些成分XiX_iXi​带来了多少异动△Yi△Y_i△Yi​?

qq_43349542的博客 3163

GUI界面编程——记事本初级实现

GUI编程--初级篇 一.元素介绍 1.JFrame类:    1)概念:其实力称为窗口,属于底层容器,可以与操作系统直接交互。    2)常用方法:        a.Jframe()方法创建一个无标题的窗口        b.Jframe(Strings)方法创建一个标题为s的窗口        c.Public void setVisible(booleanb)设

Mr_欢先生 博客 2243

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1594

Java课程设计-日历记事本

#Java课程设计—日历记事本 ##日历记事本 要求:带有日程提醒功能的日历(数据库可采用Access、SQL Server或者MySQL)。 (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。 (2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 (3)查询信息:用户可以按月份查看提...

记录学习的点点滴滴 1万+

【计算机视觉】语义分割实战:FCN、U-Net与DeepLab系列详解

语义分割实战:FCN、U-Net与DeepLab系列详解,人工智能、大模型、AI深度学习在计算机视觉领域取得了令人瞩目的进展,语义分割作为计算机视觉领域的关键任务,旨在将图像中的每个像素都分配到特定的类别中,实现对图像内容的精细理解。与目标检测关注物体的类别与位置不同,语义分割能够对场景中的所有元素进行像素级别的分类,这在自动驾驶、医学图像分析、遥感图像解译等众多领域都有着至关重要的应用。例如,在自动驾驶中,准确的语义分割可以帮助车辆识别道路、行人、交通标志等,为安全行驶提供决策依据;在医学图像分析中……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 9万+

【硬件的单元测试 UT 3】PCIe 3.0及信号完整性测试方法

PCIe标准自从推出以来,1代和2代标准已经在PC和Server上逐渐普及,用于满足高速显卡、高速存储设备对于高速数据传输的要求。出于支持更高总线数据吞吐率的目的,PCI-SIG组织在2010年制定了PCIe 3.0,即PCIe 3代的规范,数据速率达到8Gbps。

qq_43416206的博客 1411

java日历记事本

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package 日历记事本; /** * * @author Administrator */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Year extends Box imple.

他山之石 可以攻玉 2756

重回童年的经典系列☀️| 【坦克大战3D版】游戏制作+解析

带你重回童年的经典系列——坦克大战3D版制作,感兴趣的可以看看呀~

努力前行,总会成为自己心中的那道光 5万+

Java Swing开发简易记事本

【代码】Java Swing开发简易记事本。

2301_78723800的博客 527

10倍开发者的 Dify 魔法书:从零构建全栈 AI 应用

“不懂底层算法,也能开发爆款 AI 应用吗?” 答案是:绝对可以。 Dify 正在重新定义 AI 应用的开发范式——通过可视化的低代码平台,将原本需要数周的开发周期压缩到几小时。无论你是前端、后端、产品经理,还是渴望破局的独立开发者,这都是你不可错过的红利。 我们将手把手教你利用 Dify 快速接入百模大战,零代码搭建企业级知识库,并一键发布你的专属 AI 助手、智能客服和自动化工作流。 告别重复造轮子,掌握 Dify,一个人就是一支 AI 团队。现在上车,开启你的 10 倍速开发之旅!

davidwang456的专栏 680

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java 记事本界面_Java图形界面开发之简易记事本

在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。代码如下:package com.package3;/** 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本* author:ywq*/import javax.swing.*;import java.awt.*;...

weixin_42458021的博客 954

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java图形化界面记事本复制_Java图形界面开发之简易记事本

在学习了java事件之后,自己写了一个极其简单的记事本。用到了menubar,menu,menuitem等控件,事件包括actionlistener以及keylistener。代码如下:package com.package3;/** 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本* author:ywq*/import javax.swing.*;import java.awt.*;...

weixin_31972679的博客 363

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java图形界面开发—简易记事本

在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import ja...

weixin_34301132的博客 1296

java图形化界面记事本新建_Java图形界面开发—简易记事本

在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。代码如下:package com.package3;/** 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本* author:ywq*/import javax.swing.*;import java.awt.*;...

weixin_32310195的博客 776

java图形化界面记事本复制_Java图形界面开发—简易记事本

在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。代码如下:package com.package3;/** 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本* author:ywq*/import javax.swing.*;import java.awt.*;...

weixin_35780601的博客 258

Java基础-简易记事本开发(打开与保存)

简易记事本开发--打开与保存代码:package Demo; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.management.RuntimeErrorException; public class code { public static void main(String[] arg...

孟孟的博客 2508

java图形化界面记事本新建_Java圖形界面開發—簡易記事本

在學習了Java事件之后,自己寫了一個極其簡單的記事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。代碼如下:package com.package3;/** 功能:簡易記事本的開發,可以保存文件,打開文件,退出記事本* author:ywq*/import javax.swing.*;import java.awt.*;...

weixin_42538175的博客 110

【零基础实战】Java控制台开发简易记事本(文件读写+异常处理)

开发一个简易的Java控制台记事本,支持文件读写、内容编辑和基础异常处理,适合零基础实践核心I/O操作。

YOUER123X的博客 616

Java文件(io)编程——简易记事本开发

1 public class NotePad extends JFrame implements ActionListener{ 2 3 //定义需要的组件 4 JTextArea jta=null; //多行文本框 5 6 JMenuBar jmb=null; ...

anjiukonghe77852的博客 237
上一篇: 隔两日问题
下一篇: 考研的复习生活
coderlyf
博客等级 码龄10年 25粉丝 17原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值