学习来自星云:https://www.cnblogs.com/xingyunblog/p/3871611.html

代码:

import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;class GUI9
{private Frame f;// 定义窗体private MenuBar bar;// 定义菜单栏private TextArea ta;private Menu fileMenu;// 定义"文件"和"子菜单"菜单private MenuItem openItem, saveItem, closeItem;// 定义条目"退出"和"子条目"菜单项private FileDialog openDia, saveDia;// 定义"打开 保存"对话框private File file;//定义文件GUI9(){init();}//图形用户界面组建初始化public void init(){f = new Frame("Galesaur");//创建窗体对象f.setBounds(300,100,600,500);//设置窗体位置和大小f.setVisible(true); //设置窗体可见bar = new MenuBar();// 创建菜单栏ta = new TextArea();// 创建文本域fileMenu = new Menu("文件");// 创建"文件"菜单openItem = new MenuItem("打开");//创建"打开"菜单项saveItem = new MenuItem("保存");//创建"保存"菜单项closeItem = new MenuItem("退出");//创建“退出"菜单项fileMenu.add(openItem);//将 打开 菜单项添加到 文件 菜单上fileMenu.add(saveItem);//将 保存 菜单项添加到 文件 菜单上fileMenu.add(closeItem);//将 退出 菜单项添加到 文件 菜单上bar.add(fileMenu);//将文件添加到菜单栏上f.setMenuBar(bar);//将此窗体的菜单栏设置为指定的菜单栏.openDia = new FileDialog(f, "打开", FileDialog.LOAD);saveDia = new FileDialog(f, "保存", FileDialog.SAVE);f.add(ta);// 将文本域添加到窗体内myEvent();//加载事件处理     }private void myEvent(){//打开菜单项监听openItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){openDia.setVisible(true); //显得打开文件对话框String dirpath = openDia.getDirectory();//获取打开文件路径并且保存String fileName = openDia.getFile();//获取文件名并且保存if(dirpath == null ||  fileName == null) //判断路径和文件是否为空return ;else ta.setText(null); //文件不为空 清楚原来文件内容file = new File(dirpath, fileName); //创建新的路径和名称try {BufferedReader bufr = new BufferedReader(new FileReader(file));//尝试从文件中读东西String line = null; //变量字符串初始化为空while((line = bufr.readLine())!= null)ta.append(line+"\r\n"); //显示每一行内容bufr.close();//关闭文件}catch(FileNotFoundException e1) {e1.printStackTrace(); // 抛出文件路径找不到异常}catch(IOException e2){e2.printStackTrace();// 抛出IO异常}}});saveItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (file == null) {saveDia.setVisible(true);//显示保存文件对话框String dirpath = saveDia.getDirectory();//获取保存文件路径并保存到字符串中。String fileName = saveDia.getFile();获取打保存文件名称并保存到字符串中if (dirpath == null || fileName == null)//判断路径和文件是否为空return;//空操作elsefile=new File(dirpath,fileName);//文件不为空,新建一个路径和名称}try {BufferedWriter bufw = new BufferedWriter(new FileWriter(file));String text = ta.getText();//获取文本内容bufw.write(text);//将获取文本内容写入到字符输出流bufw.close();//关闭文件}catch (IOException e1) {e1.printStackTrace();//抛出IO异常}}});//窗体关闭监听f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});//退出菜单项监听closeItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){System.exit(0);}});}public static void main(String[] args){new GUI9();}
}

Java的GUI学习十二(文件的打开和保存)相关推荐

  1. Java编程思想学习(十二) 数组和容器

    一.数组 1).数组的多种初始化方式  下面总结了初始化数组的多种方式,以及如何对指向数组的引用赋值,使其指向另一个数组对象.值得注意的是:对象数组和普通数组的各种操作基本上都是一样的:要说有什么不同 ...

  2. Java IO流学习总结二:File

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54581478 本文出自[赵彦军的博客] Java IO流学习总结一:输入输出流 J ...

  3. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  4. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  5. PyTorch框架学习十二——损失函数

    PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...

  6. 【FastAPI 学习十二】定时任务篇 (移步博客园或个人网站 无广告,界面清爽整洁)

    声明 目前个人放弃CSDN平台,文章只发布于个人网站和博客园 博客园地址 [FastAPI 学习十二]定时任务篇

  7. C1认证学习十二(网络拓扑)

    C1认证学习十二(网络拓扑) 任务背景 互联网是一个广义的概念,它泛指是一切通过网路连接在一起的计算机的集合,所以,若果只是局部观察,那就不能再说互联网是一个互联的了,那么,如果说对于一个公司来说,具 ...

  8. Js高级程序设计第三版学习(十二章)

                                  Js高级程序设计第三版学习(十二章) 第十二章 DOM2和DOM3   1.样式: 访问样式属性 任何支持style特性的HTML元素都有一 ...

  9. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  10. C语言中文件的打开与保存

    C语言中文件的打开与保存 1.打开文件 /*打开文件,返回人数,将记录读入内存*/ int open() {int m=0;FILE *fp;if((fp=fopen("H:\\studen ...

最新文章

  1. 【pmcaff】传统企业转型电商的10个坑
  2. DHCP与DHCP中继简介
  3. 工程师必备:C/C 单元测试万能插桩工具
  4. bootscripttable前端排序无效_前端你应该知道的八条bug分享给你们
  5. 现实生活中我们常常遭遇“怀疑”
  6. 云原生大数据架构中实时计算维表和结果表的选型实践
  7. mysql连接代替子查询_MySQL优化之使用连接(join)代替子查询
  8. zorka源码解读之Beanshell与zorka的交互实现
  9. 又一个被JavaScript攻占的领域:物联网
  10. java web的动静分离_如何做前后端动静分离
  11. php自定义目录,ThinkPHP中自定义目录结构的设置方法_php技巧
  12. 可视化与办公自动化学习
  13. Atiitt 项目 产品 实现的目标
  14. java hsqldb_Hsqldb入门
  15. HTML5期末大作业:仿天猫购物网站设计——仿天猫购物商城(7页) 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
  16. 用低代码+BPM赋能知识文档管理系统
  17. Hub设备、网桥、二层交换机设备概述
  18. SSJ项目给我的感悟
  19. 蓝牙信标有哪些附加功能?蓝牙信标的工业用途知多少?
  20. js中unload什么意思_javascript事件之卸载(unload)事件

热门文章

  1. python代码整体加密,python 代码加密
  2. Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记
  3. Fiddler代理配置
  4. UML中依赖(Dependency)和关联(Association)之间的区别
  5. 销售方法论居然来自公司战略!看看IBM、华为、SAP是怎么做的
  6. gyp安装,及breakpad上的使用方法
  7. UVA 1252 十五 Twenty Questions
  8. SQLLDR载数加速,优化参数
  9. Android Makefile and build system 分析
  10. Reacvt-Native 图片下载使用介绍