⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filemsgprocess.java

📁 记事本
💻 JAVA
字号:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.io.*;

public class fileMsgProcess implements ActionListener{

	menu men;//菜单栏
	GUI gui;//主界面
	//文件变量
	JFileChooser choser=new JFileChooser();
	FileInputStream fis;
	FileOutputStream fos;
	File file;
	//构造函数
	public fileMsgProcess(menu men,GUI gui)
	{
		this.gui=gui;
		this.men=men;
	}
	//
	public void actionPerformed(ActionEvent e)
	{
		GUI.quit=true;//确保失去焦点
		//新建文件
		if(e.getSource()==men.file[0]){
			newFile();
		}
		//打开文件
		else if(e.getSource()==men.file[1]){
			openFile();
			
		}
		//保存文件
		else if(e.getSource()==men.file[2]){
			saveFile();
		}
		//另存为
        else if(e.getSource()==men.file[3]){
        	saveAs("另存为...");
		}
		//退出
		else if(e.getSource()==men.file[4]){
			exit();
		}
	}
	//***********************
	//打开新文件
	//***********************
	public void newFile()
	{
		if(saveProcess()){
			file=null;
			GUI.jt.setText("");
			GUI.jf.setTitle("无标题-记事本");
		}
	}
	//***********************
	//打开文件
	//***********************
	public void openFile()
	{
		//判断当前文件是否保存
		if(!saveProcess()) return;
		//打开文件
		choser.setDialogType(JFileChooser.OPEN_DIALOG);
		choser.setFileFilter(new filefilter(new String[]{"txt"},"文本文件(*.txt)"));
		int state= choser.showDialog(null,"打开");
		file=choser.getSelectedFile();

		if(file!=null && state==JFileChooser.APPROVE_OPTION){
			try{
				fis=new FileInputStream(file);
				GUI.jt.read(fis,gui);
				fis.close();
				GUI.jf.setTitle(file.getName()+"-记事本");
			}
			catch(IOException e1) 
			{				
				System.err.println(e1);	
			}				  
		}
	}
	//***********************
	//保存当前文件
	//***********************
	public boolean saveFile()
	{
		if(!(file instanceof File)){//文件不存在
			return saveAs("保存");
		}
		else{//文件存在
			try{
				fos=new FileOutputStream(file);	
				fos.write(GUI.jt.getText().getBytes());
				fos.close();
				GUI.jf.setTitle(file.getName()+"-记事本");
			}
			catch(Exception e1)
			{
				 System.err.println(e1);
			}
		}
		GUI.change=false;
		return true;
	}
	//***********************
	//另存为文件
	//***********************
	public boolean saveAs(String name)
	{
		choser.setDialogType(JFileChooser.SAVE_DIALOG);
		choser.setFileFilter(new filefilter(new String[]{"txt"},"文本文件(*.txt)"));
		while(true){
			int state=choser.showDialog(null,name);
			file=choser.getSelectedFile();
			if(file!=null && state==JFileChooser.APPROVE_OPTION  && !file.getName().equals("")){
				break;
			}
			else if(state!=JFileChooser.APPROVE_OPTION) return false;
		}
		
		try{
			file.createNewFile();
			fos=new FileOutputStream(file);
			fos.write(GUI.jt.getText().getBytes());
			fos.close();
			GUI.jf.setTitle(file.getName()+"-记事本");
		}
		catch(Exception e1)
		{
			 System.err.println(e1);
		}
		GUI.change=false;
		
		return true;
	}
	//*********************
	//退出
	//*********************
	public void exit()
	{
		//判断文件是否保存  保存后退出
		if(saveProcess())
		{
			GUI.quit=true;
			System.exit(1);
		}
		GUI.quit=false;
	}

	//**************************
	//开始其他操作之前
	//对于当前文件进行处理
	//**************************
	public boolean saveProcess()
	{
		//文件已经修改过
		if(GUI.change==true)
		{
			int i=JOptionPane.showConfirmDialog(null,"是否保存当前文件?","记事本",
					JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
			
			if(i==JOptionPane.CANCEL_OPTION) return false;
			else if(i==JOptionPane.NO_OPTION) return true;
			else if(i==JOptionPane.YES_OPTION){//需要保存
				//判断当前文件是否已经保存过
				return saveFile();
			}
		}
		return true;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -