java记事本编程工作原理_Java文件(io)编程之记事本开发详解
本文实例为大家分享了Java开发简易记事本的具体代码,供大家参考,具体内容如下
public class NotePad extends JFrame implements ActionListener{
//定义需要的组件
JTextArea jta=null; //多行文本框
JMenuBar jmb=null; //菜单条
JMenu jm1=null; //菜单
JMenuItem jmi1=null,jmi2=null; //菜单项
public static void main(String[] args) {
NotePad np=new NotePad();
}
public NotePad(){ //构造函数
jta=new JTextArea(); //创建jta
jmb=new JMenuBar();
jm1=new JMenu("文件");
jm1.setMnemonic('F'); //设置助记符
jmi1=new JMenuItem("打开",new ImageIcon("imag_3.jpg"));
jmi1.addActionListener(this); //注册监听
jmi1.setActionCommand("open");
jmi2=new JMenuItem("保存");
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
this.setJMenuBar(jmb); //加入
jmb.add(jm1); //把菜单放入菜单条
jm1.add(jmi1); //把item放入到Menu中
jm1.add(jmi2);
this.add(jta); //放入到JFrame
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,300);
this.setTitle("记事本");
this.setIconImage((new ImageIcon("imag_2.jpg")).getImage());
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
//判断是哪个菜单被选中
if(arg0.getActionCommand().equals("open")){
//JFileChooser,创建一个文件选择组件
JFileChooser jfc1=new JFileChooser();
jfc1.setDialogTitle("请选择文件……"); //设置名字
jfc1.showOpenDialog(null); //默认方式
jfc1.setVisible(true); //显示
//得到用户选择的文件全路径
String filename=jfc1.getSelectedFile().getAbsolutePath();
FileReader fr=null;
BufferedReader br=null;
try {
fr=new FileReader(filename);
br=new BufferedReader(fr);
//从文件中读取信息并显示到jta
String s="";
String allCon="";
while((s=br.readLine())!=null){ //循环读取文件,s不为空即还未读完毕
allCon+=s+"\r\n";
}
jta.setText(allCon); //放置到jta
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fr.close();
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}else if(arg0.getActionCommand().equals("save")){
//出现保存对话框
JFileChooser jfc2=new JFileChooser();
jfc2.setDialogTitle("另存为……");
jfc2.showSaveDialog(null); //按默认的方式显示
jfc2.setVisible(true);
//得到用户希望把文件保存到何处,文件全路径
String filename2=jfc2.getSelectedFile().getAbsolutePath();
//准备写入到指定文件
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter(filename2);
bw=new BufferedWriter(fw);
bw.write(this.jta.getText());
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行效果如下
点击文件按钮,点击打开菜单项,选择一个文本文件,效果如下:
打开后,内容显示如下:
对内容稍作修改,另存为名为sss的文件,效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java记事本编程工作原理_Java文件(io)编程之记事本开发详解相关推荐
- java虚拟机堆栈工作原理_java虚拟机工作原理?
展开全部 从宏观上介绍一下Java虚拟机的e5a48de588b662616964757a686964616f31333363373731工作原理.从最初编写的Java源文件(.java文件)是如何一 ...
- Java中的锁原理、锁优化、CAS、AQS详解
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:景小财 www.jianshu.com/p/e674ee68 ...
- Java中的锁原理、锁优化、CAS、AQS详解!
阅读本文大概需要 2.8 分钟. 来源:jianshu.com/p/e674ee68fd3f 一.为什么要用锁? 锁-是为了解决并发操作引起的脏读.数据不一致的问题. 二.锁实现的基本原理 2.1.v ...
- java文本区背景颜色_Java如何设置PDF文档背景色详解|chu
前言 一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化以及保护双眼的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括:设置纯色背景 设置 ...
- java与与短路与_Java中短路运算符与逻辑运算符示例详解
1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课 ...
- JAVA中的适配器应用_Java适配器模式应用之电源适配器功能详解
本文实例讲述了Java适配器模式应用之电源适配器功能.分享给大家供大家参考,具体如下: 一.模式定义 存在两种适配器模式 1 对象适配器模式,在这种适配器模式中,适配器容纳一个它包裹的类对象的物理实体 ...
- java volatile关键字的作用_java volatile关键字作用及使用场景详解
1. volatile关键字的作用:保证了变量的可见性(visibility).被volatile关键字修饰的变量,如果值发生了变更,其他线程立马可见,避免出现脏读的现象.如以下代码片段,isShut ...
- java中po代码示例_java操作oracle常用的示例代码详解
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码
•创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...
最新文章
- 用IE重起计算机或者关机
- 【Python】Scrapy爬虫实战(豆瓣电影 Top 250)
- TabControl控件和TabPage
- 把window中换行符(^M)改为linux的换行符(\r)
- Ember入门指南——教程目录
- 基于 axios 的 Vue 项目 http 请求优化
- angularjs 同步請求_angularjs $q、$http 处理多个异步请求
- python出现的各种问题
- 支付宝上线长辈模式: 字体图标加大 去除了营销推送
- 以V神为灵感创作的加密艺术NFT“EthBoy”以260ETH高价售出
- What Are The Differences Between Base, Medium, and Full Camera Link Configurations?
- php session的一些理解
- 分布式配置管理平台VS统一集中配置管理
- android app icon素材,史上最全的APP图标模板素材以及设计格式最全的
- 计算机时代汉字书写有了新的方式,网络时代的汉字书写
- 《代码大全》读书笔记(转载)
- iPhone开发部分总结
- Python处理Excel表中单元格带有换行的数据
- vs2019 fatal error C1090: PDB API “3“
- 五年级上册计算机教案闽教版,闽教版五年级上册信息技术教案
热门文章
- 像360悬浮窗那样,用WindowManager做一个炫酷的悬浮迷你音乐盒(上)
- 站长应该如何挖掘长尾关键词
- WordPress彻底禁用上传媒体图片自动生成缩略图及多尺寸图片(亲测可用)
- html监听多选框事件,复选框事件监听使用求助
- visio的.vsd格式文件转换.eps格式文件的方法+Gsview裁剪EPS文件
- 推荐几个常用在线图工具(支持时序图、用例图、类图、活动图、组件图、状态图、对象图、部署图等。同时还支持非 UML 图的甘特图、架构图等)
- 一个小巧的WINDOWS垃圾清理工具
- 文件新旧判断和字符串判断
- 【微博技巧】绕开微博绑定手机注册微博
- Spring Cloud Alibaba微服务架构实战教程—07集成knife4j生成Api文档