java 记事本,实现了打开文件和存储文件

/*
 * 功能:我的记事本
 * 
 */

package com.test7;

import javax.swing.*;

import java.io.*;
import java.awt.*;
import java.awt.event.*;

public class Notepad extends JFrame implements ActionListener {
	//定义需要的组件
	JTextArea jta=null;
	//定义菜单条
	JMenuBar jmb=null;
	//第一个JMenu
	JMenu jm1=null;
	//定义JMenuItem
	JMenuItem jmi1=null;
	JMenuItem jmi2=null;
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Notepad np=new Notepad();

	}
	
	
	//构造函数
	public Notepad() 
	{
		//创建jta
		jta=new JTextArea();
		jmb=new JMenuBar();
		//放入到JFrame
		this.add(jta);
		jm1=new JMenu("文件");
		//设置助记符
		jm1.setMnemonic('F');
		jmi1=new JMenuItem("打开");
		//设置助记符
		jmi1.setMnemonic('O');
		//注册监听
		jmi1.addActionListener(this);
		jmi1.setActionCommand("open");
		jmi2=new JMenuItem("保存");
		//设置助记符
		jmi2.setMnemonic('S');
		//注册监听
		jmi2.addActionListener(this);
		jmi2.setActionCommand("save");
		
		//加入
		this.setJMenuBar(jmb);
		//把jm1放入jmb中
		jmb.add(jm1);
		//把jmi1放入当jm1中
		jm1.add(jmi1);
		jm1.add(jmi2);
		
		
		
		
		
		this.setTitle("记事本");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE	);
		this.setSize(300,400);
		this.setVisible(true);
		
		
		
	}


	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		//判断是哪个菜单被选中
		if(arg0.getActionCommand().equals("open"))
		{
//			System.out.println("打开");
			//隆重推荐一个组件,JFileChooser
			//文件选择组件
			JFileChooser jfc1=new JFileChooser();
			//设置名字
			jfc1.setDialogTitle("请选择文件...");
			//默认方式
			jfc1.showOpenDialog(null);
			//显示
			jfc1.setVisible(true);
			//得到用户选择的文件路径
			
			String filename=jfc1.getSelectedFile().getAbsolutePath();
//			System.out.println(filename);
			FileReader fr=null;
			BufferedReader br=null;
			
			try {
				fr=new FileReader(filename);
				br=new BufferedReader(fr);
				
				//从文件中循环读取,并显示到jta中
				String s="";
				String allCon="";
				while((s=br.readLine())!=null)
				{
					//显示到jta
					allCon+=s+"\r\n";
			
				}
				//放置到jta中
				jta.setText(allCon);
				
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			finally 
			{
				try {
					fr.close();
					br.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

				
			}
			
			
			
		}
		else	if(arg0.getActionCommand().equals("save"))
		{
			//出现保存对话框
			JFileChooser jfc2=new JFileChooser();
			jfc2.setDialogTitle("另存为...");
			//按默认方式显示
			jfc2.showSaveDialog(null);
			jfc2.setVisible(true);
			
			//得到用户希望把文件保存到何处,文件的全路径
			String filename2=jfc2.getSelectedFile().getAbsolutePath();
			
			
			//准备写入到指定文件
			FileWriter fw=null;
			BufferedWriter bw=null;
			
			try {
				fw=new FileWriter(filename2);
				bw=new BufferedWriter(fw);
				//自己优化
				bw.write(this.jta.getText());
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			finally
			{
				try {
					bw.close();
					fw.close();
					
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
				
				
			}
			
			
			
		}
		
		
	}
	
	
	

}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java写windows记事本源代码,具体功能如下: 1.文件(F) 可以通过点击菜单或快捷键(alt + F)打开菜单页 1.1新建(N) 菜单内点击或助记符N或快捷键(ctrl + N) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本并关闭,再新建新的文本 点击不保存(N):不保存文本并关闭,再新建新的文本 点击取消:取消新建操作 1.2打开(O) 菜单内点击或助记符O或快捷键(ctrl + O) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本,弹出选择文件对话框 点击不保存(N):不保存文本,弹出选择文件对话框 ==》选择文件对话框: 选择打开(O):就打开新的文本 选择取消:取消打开操作,返回原文本 点击取消:取消打开操作 1.3保存(S) 菜单内点击或助记符S或快捷键(ctrl + S) 点击后保存文本内容 1.4另存为(A) 菜单内点击或助记符A 点击后打开另存为对话框,选择路径和设置文件名 选择保存(S):就会在该路径保存文本,原文本内容不会保存并关闭,打开另存的文本 取消:取消另存为操作,返回原文本 1.5页面设置(U)(只实现页面边距,其他未实现) 菜单内点击或助记符U 点击后打开页面设置对话框:可以设置一下内容 纸张:大小(Z)、来源(S) 方向:纵向(O)、横向(A) 页面边距(毫米):左(L)右(R)上(T)下(B) 页眉(H)、页脚(F)、预览:(图片) 选择确定:保存新的页面设置 选择取消:取消页面设置 1.6打印(P)(改功能未完全实现,使用可能会报错) 菜单内点击或助记符P或快捷键(ctrl + P) 点击后弹出打印对话框 1.7退出(X) 菜单内点击或助记符X 点击后退出本文本文件 2.编辑(E) 可以通过点击菜单或快捷键(alt + E)打开菜单页 2.1撤销(U) 菜单内点击或助记符U或快捷键(ctrl + Z) 响应后返回上一步操作 2.2剪切(T) 菜单内点击或助记符T或快捷键(ctrl + X) 响应后光标选中的内容提取到剪贴板,并删除该内容,光标定位在元初识位置 2.3复制(C) 菜单内点击或助记符C或快捷键(ctrl + C) 响应后光标选中内容提取到剪贴板,光标位置保持不变 2.4粘贴(P) 菜单内点击或助记符P或快捷键(ctrl + V) 响应后光标选中的内容被替换为剪贴板的内容,光标选中刚刚粘贴的内容 2.5删除(L) 菜单内点击或助记符L或快捷键(DEL) 响应后删除光标选中的内容 2.6查找(F) 菜单内点击或助记符F或快捷键(ctrl + F) 响应后弹出查找对话框:输入查找的内容,可以选择区分大小写和选择查找的方向 点击查找之后光标会选中响应的查找内容,没找到会弹出找不到对话框 2.7查找下一个(N) 菜单内点击或助记符N或快捷键(F3) 查找框有内容就直接查找贯标位置以后的内容,查找框没有内容直接弹出查找框 2.8替换(R) 菜单内点击或助记符R或快捷键(ctrl + H) 弹出替换对话框,有全部替换和替换当前两种 当前替换:替换光标选中的内容,光标移动到下一个查找内容上 2.9转到(G) 菜单内点击或助记符G或快捷键(ctrl + G) 在自动换行未选中的情况下,点击之后弹出转到指定行对话框 2.10全选(A) 菜单内点击或助记符A或快捷键(ctrl + A) 响应后选中全部文本内容 2.11时间/日期(D) 菜单内点击或助记符D或快捷键(F5) 在光标选中的内容里修改为当前时间 3.格式(O) 可以通过点击菜单或快捷键(alt + O)打开菜单页 3.1自动换行(W) 菜单内点击或助记符W 选中后,文本会自动换行,且不能点击查看状态栏和转到菜单 3.2字体(F) 菜单内点击或助记符F 弹出字体对话框:可以选择字体(F)、字形(Y)大小(S) 拥有示例和选择脚本,确定后更改全部字体 4.查看(V) 可以通过点击菜单或快捷键(alt + V)打开菜单页 4.1状态栏(S) 菜单内点击或助记符S 在底部会显示光标的起始坐标,第几行第几列 5.帮助(H) 可以通过点击菜单或快捷键(alt + H)打开菜单页 5.1查看帮助(H) 菜单内点击或助记符H 点击弹出帮助文本 5.2关于记事本(A)、 菜单内点击或助记符A 点击弹出关于记事本的对话框 显示它的版本信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值