import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.*;
public class Demo6 {
JFrame frame = new JFrame("记事本");
//菜单条
JMenuBar bar = new JMenuBar();
//文件菜单
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
//菜单项
JMenuItem openMenu = new JMenuItem("打开");
JMenuItem saveMenu = new JMenuItem("保存");
JMenuItem aboutMenu = new JMenuItem("关于");
JMenuItem closeMenu = new JMenuItem("关闭");
JTextArea area = new JTextArea(20,30);
public void initNotepad(){
//菜单添加菜单项
fileMenu.add(openMenu);
fileMenu.add(saveMenu);
//给保存添加动作监听器
saveMenu.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 e2){
e2.printStackTrace();
}
}
});
//给打开按钮添加动作监听器
openMenu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try{
FileDialog fileDialog = new FileDialog(frame,"请选择打开的路径",FileDialog.LOAD);
fileDialog.setVisible(true);
//获取用户选择的路径与文件名
String path = fileDialog.getDirectory();
String fileName = fileDialog.getFile();
//创建一个输入流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path,fileName))));
//读出数据
String line = null;
while((line = bufferedReader.readLine())!=null){
// System.out.println(line);
area.append(line+"\r\n");
}
bufferedReader.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
});
editMenu.add(aboutMenu);
editMenu.add(closeMenu);
//添加菜单条
frame.add(bar,BorderLayout.NORTH);
//菜单条添加菜单
bar.add(fileMenu);
bar.add(editMenu);
frame.add(area);
FrameUtil.initFrame(frame, 500, 600);
}
public static void main(String[] args) {
new Demo6().initNotepad();
}
}
import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.*;
public class Demo6 {
JFrame frame = new JFrame("记事本");
//菜单条
JMenuBar bar = new JMenuBar();
//文件菜单
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
//菜单项
JMenuItem openMenu = new JMenuItem("打开");
JMenuItem saveMenu = new JMenuItem("保存");
JMenuItem aboutMenu = new JMenuItem("关于");
JMenuItem closeMenu = new JMenuItem("关闭");
JTextArea area = new JTextArea(20,30);
public void initNotepad(){
//菜单添加菜单项
fileMenu.add(openMenu);
fileMenu.add(saveMenu);
//给保存添加动作监听器
saveMenu.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 e2){
e2.printStackTrace();
}
}
});
//给打开按钮添加动作监听器
openMenu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try{
FileDialog fileDialog = new FileDialog(frame,"请选择打开的路径",FileDialog.LOAD);
fileDialog.setVisible(true);
//获取用户选择的路径与文件名
String path = fileDialog.getDirectory();
String fileName = fileDialog.getFile();
//创建一个输入流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path,fileName))));
//读出数据
String line = null;
while((line = bufferedReader.readLine())!=null){
// System.out.println(line);
area.append(line+"\r\n");
}
bufferedReader.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
});
editMenu.add(aboutMenu);
editMenu.add(closeMenu);
//添加菜单条
frame.add(bar,BorderLayout.NORTH);
//菜单条添加菜单
bar.add(fileMenu);
bar.add(editMenu);
frame.add(area);
FrameUtil.initFrame(frame, 500, 600);
}
public static void main(String[] args) {
new Demo6().initNotepad();
}
}