实现一个记事本: 这里实现的是记事本的打开与保存功能。
作者主页:易学蔚来-技术互助文末获取源码
简介: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();
}
}
好了,以上就是系统的实现过程,更多文章,点击左上角头像,查看更多相关系统的分享。
公众号领取源码: