涉及的知识点:GUI界面,IO操作,事件监听。示例代码如下:
package ioTest;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
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 NotePad extends JFrame implements ActionListener{
JTextArea jta=null;
JMenuBar jmb=null;
JMenu jm=null;
JMenuItem jmi=null;
JMenuItem jmi2=null;
public static void main(String[] args) {
NotePad np=new NotePad();
}
public NotePad(){
jta=new JTextArea();
jmb=new JMenuBar();
jm=new JMenu("文件");
jm.setMnemonic('f');//设置快捷键
jmi=new JMenuItem("打开",new ImageIcon("D:\\javaSpace\\test_1\\src\\3.gif"));
//注册监听
jmi.addActionListener(this);
jmi.setActionCommand("open");
jmi2=new JMenuItem("保存");
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
this.setJMenuBar(jmb);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi2);
this.add(jta);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,300);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("open")){
//出现选择文件对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("请选择文件...");
int value=jfc.showOpenDialog(null);//按默认方式显示
jfc.setVisible(true);
if(value==JFileChooser.APPROVE_OPTION){
String filename=jfc.getSelectedFile().getAbsolutePath();
//System.out.println("test");
FileReader fr=null;
BufferedReader br=null;
try{
fr=new FileReader(filename);
br=new BufferedReader(fr);
String s,all = "";
while((s=br.readLine())!=null){
all+=s+"\r\n";
}
jta.setText(all);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
br.close();
fr.close();
} catch (Exception e2) {
}
}
}else{//点JFileChooser关闭按扭时不做作务处理
}
}else if(arg0.getActionCommand().equals("save")){
//出现保存对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("另存为...");
int value=jfc.showSaveDialog(null);
jfc.setVisible(true);
if(value==JFileChooser.APPROVE_OPTION){
String filename=jfc.getSelectedFile().getAbsolutePath();
FileWriter fw=null;
BufferedWriter bw=null;
try{
fw=new FileWriter(filename);
bw=new BufferedWriter(fw);
bw.write(jta.getText());
}catch(Exception e){
e.printStackTrace();
}finally{
try {
bw.close();
fw.close();
} catch (Exception e2) {
}
}
}else{
}
}
}
}