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.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import simpleFrame.FrameUtil;
/**
* 菜单组件 菜单条(menuBar) 菜单(menu) 菜单项(menuItem)
*
* 菜单条可以添加菜单
*
* 菜单可以添加菜单项
*
* 复选菜单 菜单添加菜单,菜单添加菜单项
*
* 每个监听器都只负责一个活动
*
* @author Administrator
*
*/
public class Demo2 {
JFrame frame = new JFrame("记事本");
// 菜单条
JMenuBar bar = new JMenuBar();
// 文件菜单
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
JMenu switchMenu = new JMenu("最近打开的文件");
// 菜单项
JMenuItem openMenu = new JMenuItem("打开");
JMenuItem saveMenu = new JMenuItem("保存");
JMenuItem aboutMenu = new JMenuItem("关于");
JMenuItem closeMenu = new JMenuItem("关闭");
JMenuItem workMenu1 = new JMenuItem("0910project");
JMenuItem workMenu2 = new JMenuItem("1209project");
JMenuItem workMenu3 = new JMenuItem("1110project");
JTextArea area = new JTextArea(20, 30);
public void initNotepad() {
// frame.add(bar);
// 菜单条添加菜单
bar.add(fileMenu);
bar.add(editMenu);
// 菜单添加菜单项
fileMenu.add(openMenu);
fileMenu.add(saveMenu);
// 给打开添加事件
openMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
try {
FileDialog dialog = new FileDialog(frame, "请选择打开的文件",
FileDialog.LOAD);
dialog.setVisible(true);
// 获取用户的选择的路径和文件名
String path = dialog.getDirectory();
String filename = dialog.getFile();
frame.setTitle(filename);
FileReader fileReader = new FileReader(path + filename);
BufferedReader bufferedReader = new BufferedReader(
fileReader);
String string = "";
area.setText("");
int lineNum = 0;
while ((string = bufferedReader.readLine()) != null) {
area.append(string + "\r\n");
lineNum++;
}
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
});
// 给保存添加事件
saveMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
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"); // 也可以将JTextArea
// 改成TextArea
// 没有\r\n
fileOutputStream.write(content.getBytes());
// 关闭资源
fileOutputStream.close();
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
});
editMenu.add(aboutMenu);
editMenu.add(closeMenu);
// 复选菜单
switchMenu.add(workMenu1);
switchMenu.add(workMenu2);
switchMenu.add(workMenu3);
fileMenu.add(switchMenu);
// 添加菜单条
frame.add(bar, BorderLayout.NORTH);
frame.add(area);
FrameUtil.initFrame(frame, 500, 600);
}
public static void main(String[] args) {
new Demo2().initNotepad();
}
}
记事本_txt.java
最新推荐文章于 2024-01-11 10:51:33 发布