Java实现简单的记事本

实现一个记事本: 这里实现的是记事本的打开与保存功能。

作者主页:易学蔚来-技术互助文末获取源码
简介:Java领域优质创作者、Java优质项目、简历模板、学习资料、面试题库

更多Java学习资源尽在B站账号:清风学Java
https://space.bilibili.com/591988762
只做Java分享,欢迎个位小伙伴前来观看,更多优质学习资源持续更新中…

知识提示:
JTextArea中,敲一个回车是一个\n,TextArea中敲一个回车是\r\n。

供参考学习使用:
代码实现:

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import cn.itcast.util.FrameUtil;

public class Notepad {
	
	JFrame frame = new JFrame("记事本");
	
	//菜单条
	JMenuBar bar = new JMenuBar();
	
	//文件菜单
	JMenu fileMenu = new JMenu("文件");
	JMenu editMenu = new JMenu("编辑");
	
	JMenu switchMenu = new JMenu("切换工作目录"); //让其作为复选菜单
	
	//菜单项
	JMenuItem openItem = new JMenuItem("打开");
	JMenuItem savaItem = new JMenuItem("保存");
	
	JMenuItem aboutItem = new JMenuItem("关于");
	JMenuItem closeItem = new JMenuItem("关闭");
	
	JMenuItem workItem1 = new JMenuItem("0910project");
	JMenuItem workItem2 = new JMenuItem("1208project");
	JMenuItem workItem3 = new JMenuItem("1110project");
	
	//多行文本框
	JTextArea area = new JTextArea(20,30);
	
	public void initNotepad() {
		//菜单添加菜单项
		fileMenu.add(openItem);
		fileMenu.add(savaItem);
		
		//给打开添加事件
		openItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					FileDialog dialog = new FileDialog(frame,"请选择要打开的文件",FileDialog.LOAD);
					dialog.setVisible(true);
					
					//获取用户选择的路径与文件名
					String path = dialog.getDirectory();
					String fileName = dialog.getFile();
					//创建一个输出流对象
					FileInputStream inputStream = new  FileInputStream(new File(path,fileName));
					byte[] buf = new byte[1024];
					int lenth = 0;
					String data = "";
					while((lenth = inputStream.read(buf)) != -1) {
						data += new String(buf,0,lenth);
					}
					area.setText(data);
					//关闭资源
					inputStream.close();
				} catch (IOException e1){
					//e1.printStackTrace();
				}
			}
		});
		
		//给保存添加事件
		savaItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					FileDialog fileDialog = new FileDialog(frame,"请选择保存的路径",FileDialog.SAVE);
					fileDialog.setVisible(true);
					
					//获取用户选择的路径与文件名
					String path = fileDialog.getDirectory();
					String fileName = fileDialog.getFile();
					//创建一个输入流对象
					FileOutputStream fileOutputStream = new FileOutputStream(new File(path,fileName));
					
					//获取文本域的内容,把内容写出
					String content = area.getText();
					content = content.replaceAll("\n", "\r\n");
					fileOutputStream.write(content.getBytes());
					//关闭资源
					fileOutputStream.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		});
		
		editMenu.add(aboutItem);
		editMenu.add(closeItem);
		
		//给关于添加一个事件监听器
		aboutItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(frame, "这是一个简单的记事本,感谢你的使用!!", "产品介绍", JOptionPane.INFORMATION_MESSAGE);
			}
		});
		
		//给关闭添加一个事件监听器
		closeItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		
		//复选菜单
		switchMenu.add(workItem1);
		switchMenu.add(workItem2);
		switchMenu.add(workItem3);
		//菜单添加菜单就是复选菜单
		fileMenu.add(switchMenu);
		
		//菜单条添加菜单
		bar.add(fileMenu);
		bar.add(editMenu);
		
		//添加菜单条并设置布局
		frame.add(bar,BorderLayout.NORTH);
		//添加多行文本框
		frame.add(new JScrollPane(area));
		FrameUtil.initFrame(frame, 500, 600);
		
	}

	public static void main(String[] args) {
		new Notepad().initNotepad();
	}
}

好了,以上就是系统的实现过程,更多文章,点击左上角头像,查看更多相关系统的分享。

公众号领取源码:
在这里插入图片描述

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,这是一个简单Java记事本实现示例: ```java import java.io.*; import java.util.Scanner; public class SimpleNotepad { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Welcome to Simple Notepad!"); while (true) { System.out.println("Enter '1' to create a new file, '2' to open an existing file, or '3' to exit:"); int choice = scanner.nextInt(); switch (choice) { case 1: createFile(); break; case 2: openFile(); break; case 3: System.out.println("Exiting Simple Notepad..."); System.exit(0); break; default: System.out.println("Invalid choice. Please try again."); } } } private static void createFile() { Scanner scanner = new Scanner(System.in); System.out.println("Enter the name of the file to create:"); String filename = scanner.nextLine(); try { File file = new File(filename); if (file.createNewFile()) { System.out.println("File created: " + file.getAbsolutePath()); } else { System.out.println("File already exists."); } FileWriter writer = new FileWriter(file); System.out.println("Enter text to write to the file:"); String text = scanner.nextLine(); writer.write(text); writer.close(); System.out.println("Text written to file."); } catch (IOException e) { System.out.println("Error creating file: " + e.getMessage()); } } private static void openFile() { Scanner scanner = new Scanner(System.in); System.out.println("Enter the name of the file to open:"); String filename = scanner.nextLine(); try { File file = new File(filename); if (file.exists()) { FileReader reader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(reader); String line; System.out.println("File contents:"); while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } reader.close(); } else { System.out.println("File does not exist."); } } catch (IOException e) { System.out.println("Error reading file: " + e.getMessage()); } } } ``` 这个简单记事本程序提供了三个选项:创建新文件、打开现有文件或退出程序。如果选择创建新文件,程序会要求用户输入文件名和要写入文件的文本。如果选择打开现有文件,程序会要求用户输入文件名并显示文件内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值