import java.awt.FileDialog;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.JOptionPane;
public class Wenjian implements ActionListener{
public void actionPerformed(ActionEvent e)
{
//新建的功能表
//===================================================================================
if(e.getActionCommand().equals("新建"))
{
jian();
//调用方法判断文件内容有没改变
if(Caidan1.falg==true)//如果有改变
{
int k;
k=JOptionPane.showOptionDialog(Caidan1.kuang, "是否保存", "提示", JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE,null, null,null);
//弹出对话诓
if(k==JOptionPane.OK_OPTION)//按”是“时候调用保存或另存为的方法 然后在把判断值该变
{ Cun();
}else if(k==JOptionPane.NO_OPTION)//按“否”就新建
{
Caidan1.wenben.setText("");
}else //撤消不用做什么
{}
Caidan1.falg=false;
}else//前面没运行就到这新建
{Caidan1.wenben.setText("");
}
}
//======================================================================================
else if(e.getActionCommand().equals("打开"))
{
jian();
if(Caidan1.falg==true)//判断原文件有没改变过
{
int k;
k=JOptionPane.showOptionDialog(Caidan1.kuang, "是否保存", "提示", JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE,null, null,null);
// 弹出对话诓
if(k==JOptionPane.OK_OPTION)//按是就调用保存或另存功能
{ Cun();
Caidan1.falg=true;
}else if(k==JOptionPane.NO_OPTION)//这这样也是没错的。。不过最好就不要其实要调用输出流
{
Caidan1.wenben.setText("");
}else
{}
Caidan1.falg=false;
}
FileDialog fd=new FileDialog(Caidan1.kuang,"打开",FileDialog.LOAD);
fd.show();
String strFile=fd.getDirectory()+fd.getFile();
if(strFile!=null)
{
try {
FileReader fr=new FileReader(strFile);
BufferedReader fis=new BufferedReader(fr);
String line=fis.readLine();
Caidan1.falg=true;
while(line!=null)
{
Caidan1.wenben.append(line+"\n");
line=fis.readLine();
}
fis.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
//==========================================================================
else if(e.getActionCommand().equals("保存"))
{
Cun();
}
//==================================================
else if(e.getActionCommand().equals("另存为"))
{
Caidan1.mulu=null;
Cun();
}
else if(e.getActionCommand().equals("退出"))
{
tuei();}
}
public void Cun()
{
if(Caidan1.mulu==null)
{
FileDialog ff=new FileDialog(Caidan1.kuang,"打开",FileDialog.SAVE);
ff.show();
Caidan1.mulu=ff.getDirectory()+ff.getFile();
try{
FileWriter Fr=new FileWriter(Caidan1.mulu);
BufferedWriter FF=new BufferedWriter(Fr);
FF.write(Caidan1.wenben.getText());
FF.newLine();
FF.close();
}catch(Exception p)
{
p.printStackTrace();
}
}else
{
try{
FileWriter Fr=new FileWriter(Caidan1.mulu);
BufferedWriter FF=new BufferedWriter(Fr);
FF.write(Caidan1.wenben.getText());
FF.newLine();
FF.close();
}catch(Exception p)
{
p.printStackTrace();
}
}
}
public void jian(){
Caidan1.wenben.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e)
{
Caidan1.falg=true;
}
});
}
public void tuei(){
if(Caidan1.falg==true)//如果有改变
{
int k;
k=JOptionPane.showOptionDialog(Caidan1.kuang, "是否保存", "提示", JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE,null, null,null);
//弹出对话诓
if(k==JOptionPane.OK_OPTION)//按”是“时候调用保存或另存为的方法 然后在把判断值该变
{ Cun();
Caidan1.falg=true;
System.exit(0);
}else if(k==JOptionPane.NO_OPTION)
{
System.exit(0);
}
Caidan1.falg=false;
}
}
}
这是菜单文件的功能。。做到头晕晕的。。第一次做这样的