package com.test1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
public class Demo4 extends JFrame implements ActionListener {
// 定义JTextArea
JTextArea jta = null;
// 菜单条
JMenuBar jmb = null;
// 第一JMenuItem
JMenu jm1 = null;
// 定义JMenuItem
JMenuItem jmi1 = null;
JMenuItem jmi2 = null;
public static void main(String[] args) {
Demo4 demo4 = new Demo4();
}
public Demo4() {
// 创建jta
jta = new JTextArea();
jmb = new JMenuBar();
jm1 = new JMenu("文件");
jmi1 = new JMenuItem("打开(O)", new ImageIcon("dakai.jpg"));
jmi2 = new JMenuItem("保存(S)", new ImageIcon("baocun.jpg"));
// jm1设置助记符
jm1.setMnemonic('F');
// 注册监听
jmi1.addActionListener(this);
jmi1.setActionCommand("open");
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
// 加入
this.setJMenuBar(jmb);
// jm1放入到jmb
jmb.add(jm1);
// jmi1(2)放到jm1
jm1.add(jmi1);
jm1.add(jmi2);
// 放入到JFrame
this.add(jta);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setVisible(true);
}
// 用户点击的是什么菜单
@Override
public void actionPerformed(ActionEvent e) {
// 判断是哪个菜单被选中
if (e.getActionCommand().equals("open")) {
// System.out.println("open");
// JFileChooser
JFileChooser jfc1 = new JFileChooser();
// 设置名字
jfc1.setDialogTitle("请选择文件");
// 默认方式
jfc1.showOpenDialog(null); // 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) {
allCon += s + "\r\n";
}
//放置到jta中
jta.setText(allCon);
}
catch (Exception e2) {
e2.printStackTrace();
}
finally {
try {
br.close();
fr.close();
}
catch (Exception e3) {
e3.printStackTrace();
}
}
}
else if (e.getActionCommand().equals("save")) {
// System.out.println("save");
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("另存为...");
jfc.showSaveDialog(null);
jfc.setVisible(true);
//得到用户希望吧文件保存到何处
//文件的全路径
String file = jfc.getSelectedFile().getAbsolutePath();
//准备卸去到指定文件
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.write(this.jta.getText());
}
catch (Exception e2) {
e2.printStackTrace();
}
finally {
try {
bw.close();
fw.close();
}
catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
}
打开和保存java源码(有待优化)
最新推荐文章于 2023-12-29 22:32:54 发布