/**
* 利用I/O编程写的比较功能简单的记事本
*/
package notepad;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
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{
//定义需要的组件、
JTextArea jta=null;
//定义菜单条
JMenuBar jmb=null;
//定义菜单条里面的菜单选项
JMenu ju=null;
//定义菜单选项里面的内容
JMenuItem jmi=null;
JMenuItem jmi1=null;
public static void main(String args[]){
Notepad np=new Notepad();
}
//定义构造方法用来初始化组件
public Notepad(){
jta=new JTextArea();
jmb=new JMenuBar();
ju=new JMenu("文件");
jmi=new JMenuItem("打开");
//给文本域注册监听
jmi.addActionListener(this);
//添加一个打开命令
jmi.setActionCommand("open");
jmi1=new JMenuItem("保存");
jmi1.addActionListener(this);
//添加一个保存命令
jmi1.setActionCommand("save");
//将文本域添加到容器里面去
this.add(jta);
//将菜单条添加到文本域里面
this.setJMenuBar(jmb);
//将菜单选项添加到菜单条里面
jmb.add(ju);
//给菜单选项添加内容
ju.add(jmi);
ju.add(jmi1);
//设置大小和默认关闭方式
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体大小
this.setSize(500, 500);
//设置可见性
this.setVisible(true);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("open")){
//使用JFileChooser来弹出文件选择面板
JFileChooser jfc=new JFileChooser();
//给文件面板起一个名字
jfc.setDialogTitle("请选择文件");
//选择默认打开方式
jfc.showOpenDialog(null);
//用来得到文件路径
String path=jfc.getSelectedFile().getPath();
//显示
jfc.setVisible(true);
FileReader fr=null;
BufferedReader br=null;
try {
fr=new FileReader(path);
br=new BufferedReader(fr);
//建立一个字符串用来存储读到的字节
String s="";
//用一个字符串来存储最终结果
String allcon="";
while((s=br.readLine())!=null){
allcon=allcon+s+"\r\n";
//将字符串写到文本区域里面
jta.setText(allcon);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fr.close();
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else if(arg0.getActionCommand().equals("save")){
//使用JFileChooser来弹出保存面板
JFileChooser jfc=new JFileChooser();
//给文件设置一个标题
jfc.setDialogTitle("文件另存为........");
//设置文件默认方式显示
jfc.showSaveDialog(null);
jfc.setVisible(true);
FileWriter fw=null;
FileReader fr=null;
BufferedWriter bw=null;
BufferedReader br=null;
//用来得到文件路径
String paths=jfc.getSelectedFile().getPath();
try {
// fr=new FileReader(jfc.get);
// fw=new FileWriter(paths);
// bw=new BufferedWriter(fw);
bw.write(this.jta.getText());
// String s="";
// String allstring=jta.getText();
// while(bw.!=null){
// bw.write(s);
// }
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}