写一个简单的记事本,学习IO流
来源:互联网 发布:保存文件安全数据 编辑:程序博客网 时间:2024/06/02 05:08
package com.test.notebook;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
public class NotePad extends JFrame implements ActionListener{
/**
*我的记事本(界面+功能)
* @param args
*/
//定义需要的组件
JTextArea jta = null;
//定义菜单条
JMenuBar jmb =null;
//第一个menu
JMenu jm1 =null;
JMenuItem jmi1 = null;
JMenuItem jmi2 = null;
public static void main(String[] args) {
NotePad n = new NotePad();
}
//构造函数
public NotePad(){
//创建jta
jta = new JTextArea();
jmb = new JMenuBar();
jm1 = new JMenu("文件");
//设置助记符
jm1.setMnemonic('F');
jmi1 = new JMenuItem("打开",new ImageIcon("new.gif"));
//注册监听
jmi1.addActionListener(this);
jmi1.setActionCommand("open");
jmi2 = new JMenuItem("保存",new ImageIcon("new.gif"));
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
//把jm1放入jmb
jmb.add(jm1);
//把item放入Menu
jm1.add(jmi1);
jm1.add(jmi2);
this.add(jta);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800, 600);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("open")){
//JFileChooser组件,选择
JFileChooser jfcl = new JFileChooser();
//设置名字
jfcl.setDialogTitle("请选择文件....");
jfcl.showOpenDialog(null);
//显示
jfcl.setVisible(true);
//得到用户选择的绝对路径
String fileName = jfcl.getSelectedFile().getAbsolutePath();
//System.out.print(fileName);
FileReader fr =null;
BufferedReader br =null;
try {
fr = new FileReader(fileName);
br = new BufferedReader(fr);
//从文件中读取信息并显示列
String s ="";
String allCon ="";
while( (s=br.readLine())!=null){
allCon +=s+"\r\n";
}
//放置到Jta即可
jta.setText(allCon);
} catch (Exception e2) {
}finally{
try {
fr.close();
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if(e.getActionCommand().equals("save")){
//出现保存对话框
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("另存为....");
//按默认的方式显示
jfc.showSaveDialog(null);
jfc.setVisible(true);
//得到用户希望文件保存到何处
String file = jfc.getSelectedFile().getAbsolutePath();
//准备写入到指定文件即可
FileWriter fw = null;
BufferedWriter bw =null;
try {
fw= new FileWriter(file);
bw= new BufferedWriter(fw);
bw.write(this.jta.getText());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
bw.close();
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
- 写一个简单的记事本,学习IO流
- 一个简单的Java IO流写的记事本
- Java写的一个还没有完成的记事本。没有IO。
- QT学习二:一个简单的记事本
- 一个简单的记事本
- 一个简单的记事本
- 一个简单的记事本
- 用python写的一个简单的记事本
- 自己写的一个简单的android记事本app
- 用记事本写一个简单的java程序
- 如何用java写一个简单的记事本。
- 记事本 + 命令行 + Tomcat + JDK 写一个简单的JavaWeb程序
- java学习之用记事本写简单的HelloWorld程序
- win32sdk学习 richedit实现的一个简单记事本
- 我写的简单记事本程序
- 用C++写的一个记事本
- Java写的一个记事本工具
- 一个Java写的记事本代码
- Android---广播(Broadcast)---广播发送的过程分析
- Linux下代码从SVN服务器到web服务器的自动化部署[svn update $WEB --username mrwei --password jiaowomrwei]
- 开发环境搭建
- SpringMVC json数据中文乱码问题
- 百度前端学院_小薇课堂_task3
- 写一个简单的记事本,学习IO流
- 关于C++ const 的全面总结
- 关于linux中的死锁
- 82 C语言宏定义
- iOS-OC-设置UITableViewCell之间的间距
- 【《Real-Time Rendering 3rd》 提炼总结】(四) 第五章 · 图形渲染与视觉外观
- 基于位置的服务之如何找到自己的位置
- 基于openCV和PythonSMTP的天眼系统
- Python自然语言分析(第四期):第2课书面作业