package cyj;
import java.io.*;
import java.awt.event.*;
import java.awt.geom.Area;
import java.awt.*;
import javax.swing.*;
public class JiShiBen extends JFrame implements ActionListener{
/**
* @记事本
*/
// 定义需要的组件
JTextArea jta = null;
//菜单条
JMenuBar jmb=null;
JMenu jml=null;
JMenuItem jmil=null;
JMenuItem jmi2=null;
public static void main(String[] args) {
JiShiBen j=new JiShiBen();
}
//构造函数
public JiShiBen(){
//创建jta
jta=new JTextArea();
jmb=new JMenuBar();
jml=new JMenu("文件");
jmi2=new JMenu("保存");
jml.setMnemonic('f');
jmil=new JMenuItem("打开");
//注册监听
jmil.addActionListener(this);
jmil.setActionCommand("open");
this.setJMenuBar(jmb);
jmi2=new JMenuItem("保存");
//注册监听
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
//加入
jmb.add(jml);
jml.add(jmil);
jml.add(jmi2);
//放入到JFrame
this.add(jta);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,300);
this.setVisible(true);
}
//
public void actionPerformed(ActionEvent e) {
//判断是哪个菜单被选中
if(e.getActionCommand().equals("open")){
//文件选择组件
JFileChooser jfcl=new JFileChooser();
//设置名字
jfcl.setDialogTitle("请选择文件");
//默认方式
jfcl.showOpenDialog(null);
//显示
jfcl.setVisible(true);
//得到用户选择的文件全路径
String filename=jfcl.getSelectedFile().getAbsolutePath();
BufferedReader br=null;
FileReader fr=null;
try {
fr=new FileReader(filename);
br=new BufferedReader(fr);
String s="";
String allstr="";
while((s=br.readLine())!=null){
allstr+=s+"\r\n";
}
jta.setText(allstr);
} catch (Exception e2) {
e2.printStackTrace();
}finally{
try {
fr.close();
br.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
else 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(jta.getText());
} catch (Exception e2) {
e2.printStackTrace();
}finally{
try {
bw.close();
fw.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
}