实现记事本的新建,保存,打开,另存为等功能
/**
java实现记事本功能
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Java
{private Frame fr;private TextArea ta;private MenuBar bar;private Menu m;private MenuItem mi1,mi2,mi3,mi4,mi5;private Font font;private Dialog dia;private Button but1,but2;private FileDialog fd1,fd2;private File file = null; Java(){init();} public void init(){fr = new Frame("我的记事本");ta = new TextArea();bar = new MenuBar();m = new Menu("file");mi1 = new MenuItem("new");mi2 = new MenuItem("open");mi3 = new MenuItem("save");mi4 = new MenuItem("save as");mi5 = new MenuItem("exit");but1 = new Button("是");but2 = new Button("否"); fd1 = new FileDialog(fr,"File",FileDialog.LOAD );fd2 = new FileDialog(fr,"File",FileDialog.SAVE ); font = new Font("Monospaced" ,Font.BOLD,20);//新建一个字体对象dia = new Dialog(fr,"是否保存?",true);dia.setLayout(new FlowLayout());dia.setBounds(530, 280, 140, 100); fr.setBounds(200, 80, 700, 600);fr.add(ta);fr.setFont(font);//设置字体m.add(mi1);m.add(mi2);m.add(mi3);m.add(mi4);m.add(mi5);bar.add(m);fr.setMenuBar(bar);dia.add(but1);dia.add(but2); myEvent(); fr.setVisible(true); }public void myEvent(){ fr.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//新建一个文件mi1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ta.setText("");}});//打开一个文件mi2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){fd1.setVisible(true);String dirPath = fd1.getDirectory();//返回次对话框的目录String fileName = fd1.getFile();//获取此文件对话框的选定文件if(dirPath==null&&fileName==null)return ;//下面的程序不运行ta.setText("");file = new File(dirPath,fileName);try{BufferedReader bufr = new BufferedReader(new FileReader(file));String str = null;while((str = bufr.readLine())!=null){ta.append(str +"\r\n");}bufr.close();//资源必须关闭}catch(IOException ex){throw new RuntimeException("流无法读取");}}});//保存mi3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){saveMethod();}});mi4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){fd2.setVisible(true);String dirPath = fd2.getDirectory();//返回次对话框的目录String fileName = fd2.getFile();//获取此文件对话框的选定文件if(dirPath==null&&fileName==null)//判断是否取消return ;//下面的程序不运行
// ta.setText(" ");file = new File(dirPath,fileName); try{BufferedWriter bufw = new BufferedWriter(new FileWriter(file));String str = ta.getText();bufw.write(str);bufw.close();}catch(IOException ed){throw new RuntimeException("写入流出现异常");}}});//退出mi5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String str = ta.getText();if(str.equals(""))System.exit(0);else{dia.setVisible(true);}}});but1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){saveMethod();}});but2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});ta.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e){// ctrl和S同时按下if((e.isControlDown())&&(e.getKeyCode() == e.VK_S)){saveMethod();}}});}public void saveMethod(){ if(file==null){//文件为空,那么文件对话框就会跳出来fd2.setVisible(true);String dirPath = fd2.getDirectory();//返回次对话框的目录String fileName = fd2.getFile();//获取此文件对话框的选定文件if(dirPath==null&&fileName==null)//判断是否取消return ;//下面的程序不运行file = new File(dirPath,fileName);}try{BufferedWriter bufw = new BufferedWriter(new FileWriter(file));String str = ta.getText();bufw.write(str);bufw.close();}catch(IOException ed){throw new RuntimeException("写入流出现异常");}}public static void main(String[] args) {new Java();}
}
实现记事本的新建,保存,打开,另存为等功能相关推荐
- java记事本实现新建、打开、保存、另存为、退出功能
本文是对记事本中的新建.打开.保存.另存为和退出功能的实现和讲解.主要需要解决的问题有:如何从文件中读取内容并放入文本编辑区域?如何将对已有文件中内容的改变保存回文件中?如何创建新文件保存文本内容?接 ...
- Winform中实现ZedGraph曲线图的图像复制到剪切板、打印预览、获取图片并保存、另存为的功能
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- JAVA编写实现记事本保存、另存为、查找、替换等功能
直接上图 通过学习JAVA基础知识就可以慢慢练习着做这类有趣的事情 自己可以选择写一些小游戏 通过Swing框架,实现图形界面,在图形界面中添加文本框架实现文本编辑,通过鼠标菜单栏添加事件监听实现保存 ...
- 文档的新建,打开与保存
文档的新建.打开与保存 新建.打开 文件菜单:新建Ctrl+N.打开Ctrl+O 关闭单个文档:Ctrl+w,关闭所有文档:Ctrl+Alt+w 保存 存储:覆盖原文件 存储为:另存为当前文件,并将当 ...
- AI文档的新建、打开与保存
新建.打开 1.文件菜单:新建Ctrl+N.打开Ctrl+O 2.关闭单个文档:Ctrl+w,关闭所有文档:Ctrl+Alt+w 保存 存储:覆盖原文件 存储为:另存为当前文件,并将当前打开文件转换为 ...
- FSO对象新建、打开、保存文件
文件管理: 语句管理:打开.open----for output(append)===写操作 Input-----write(print)通过input进行读操作 Close---关闭文件 FSO-- ...
- ps新建、打开和保存图像文件
新建.打开和保存图像文件 新建图像文件 新建一个图像文件,有几种途径,可以在photoshop 的文件菜单中点击新建,也可以通过快捷键ctrl+N键来实现. 然后设置弹出的新建文件对话框,选择图像尺寸 ...
- 【python-docx】安装、新建、打开、保存Word文档
1.安装 python-docx是一个可以操作Word文档的python开源库,简单易用,适合用来自动化办公,我们可以使用pip轻松安装它 pip install python-docx 2.新建与打 ...
- html无法选记事本打开方式,WinXp无法打开记事本或打开记事本会弹出打开方式的解决方案...
WinXp系统中,如果记事本的关联被破坏,那么用户很有可能会碰到无法打开记事本或开启开记事本就弹出打开方式的情况.这该怎么办?我们又该如何恢复记事本的关联?下面,小编就向大家分享WinXp无法打开记事 ...
- Word 2003文件保存和另存为操作是否熟练掌握的有关测试
提出问题 本文内容不仅适用于Word,对于其他的文档(文字.图形.动画.声音等)编辑软件基本通用. 对于操作上述各种编辑软件时,大家都应该注意到,我们第一次保存文件时系统出现的是"另存为&q ...
最新文章
- android框架连接mysql_Android:ROOM数据库框架
- [ATF]-ATF的代码学习篇-一篇就够了
- 格式化_U盘提示格式化怎么办 U盘提示格式化解决方法【详解】
- 腾达n304v2支持万能中继吗_驱动天空 - 网络设备 - 宽带路由器 - 腾达路由器
- VMware 创建开启虚拟机时候报错的解决方式
- 为什么不应该重写service方法
- 交换二叉树的每个节点的左右子树
- 李群与李代数2:李代数求导和李群扰动模型
- Linux内核用户权限的实现,Linux内核设计与实现(6)---系统调用
- AspNet WebApi OData 学习
- 易班自动答题脚本_自动答题脚本教程及源码分享(无视分辨率)
- 微软苏州校招笔试 12月27日
- 刚学会的画丝滑的箭头ppt
- 来个水帖:下载Dev
- MATLAB 调用cplex解二次规划,【Cplex for MATLAB】安装问题以及二次规划的源码解释问题...
- win10系统关闭哪些服务器,win10.1系统哪些服务可以关闭掉?
- Android 截取指定号码的短信 并且不让系统获取短信通知用户
- JqGrid实现水平滚动条
- 经典算法(动态图展示)
- 数学与计算机学院文化节,我院成功举办第二届数学文化节暨计算科学文化交流月活动...
热门文章
- 京东运费险,不是迟来,而是根本不用来!
- MFC画直线(dialog)
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- 买天猫店铺网店转让重新设计
- 花3万组组装服务器,土豪花3万买号上线后没人理?自嘲应该多砸钱买个更贵的...
- Android包体积过大,真的会影响绩效
- Discuz!NT论坛代码小分析【转】
- 使用chatgpt实现微信聊天小程序(秒回复),github开源(附带链接)
- idea开发SSM框架游戏账号租号发布网站 (javaweb-php-asp.netC#-j2ee-springboot)功能有推荐算法功能
- CodeForces - 1312E Array Shrinking(区间dp)(通俗易懂)