IO编程——记事本开发

来源:互联网 发布:新款mac锁屏快捷键 编辑:程序博客网 时间:2024/05/21 12:49
package com.note;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NotePad extends JFrame implements ActionListener{//定义相关组件JTextArea jta = null;JScrollPane  jsp = null;JMenuBar jmb = null;JMenu jm1 = null;JMenu jm2 = null;JMenu jm3 = null;JMenu jm4 = null;JMenu jm5 = null;JMenuItem jmi1 = null;JMenuItem jmi2 = null;JMenuItem jmi3 = null;JMenuItem jmi4 = null;JMenuItem jmi5 = null;public static void main(String[] args) {NotePad np = new NotePad();}//构造函数public NotePad(){jta = new JTextArea();jsp = new JScrollPane(jta);//文本域加入滚动条jmb = new JMenuBar();jm1 = new JMenu("文件(F)");jm1.setMnemonic('F');jm2 = new JMenu("文件(E)");jm2.setMnemonic('E');jm3 = new JMenu("格式(O)");jm3.setMnemonic('O');jm4 = new JMenu("查看(V)");jm4.setMnemonic('V');jm5 = new JMenu("帮助(H)");jm5.setMnemonic('H');jmi1 = new JMenuItem("新建(N)");jmi2 = new JMenuItem("打开(O)");jmi2.addActionListener(this);jmi2.setActionCommand("open");jmi3 = new JMenuItem("保存(S)");jmi3.addActionListener(this);jmi3.setActionCommand("save");this.setJMenuBar(jmb);//加入菜单工具条jmb.add(jm1);jmb.add(jm2);jmb.add(jm3);jmb.add(jm4);jmb.add(jm5);//加入文件菜单项jm1.add(jmi1);jm1.add(jmi2);jm1.add(jmi3);this.add(jsp);//带滚动的文本域this.setTitle("NotePad-Java Version");this.setSize(800, 500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {//选择打开文件if (e.getActionCommand().equals("open")){JFileChooser jfc = new JFileChooser();jfc.setDialogTitle("请选择文件...");jfc.showOpenDialog(null);jfc.setVisible(true);//得到打开文件的绝对路径String filePath = jfc.getSelectedFile().getAbsolutePath();FileReader fr = null;BufferedReader br = null;try {fr = new FileReader(filePath);br = new BufferedReader(fr);//从文件中读取文本并显示到jtaString str = "";String allStr = "";while ((str = br.readLine()) != null){allStr += str+"\r\n";}//显示文本jta.setText(allStr);} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}finally{try {br.close();fr.close();} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}}else if (e.getActionCommand().equals("save")){JFileChooser jfc = new JFileChooser();jfc.setDialogTitle("另存为...");jfc.showSaveDialog(null);jfc.setVisible(true);//得到文件保存的路径String filePath = jfc.getSelectedFile().getAbsolutePath();//写入文件FileWriter fw = null;BufferedWriter bw = null;try {fw = new FileWriter(filePath);bw = new BufferedWriter(fw);//写入文本bw.write(this.jta.getText());} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}finally{try {bw.close();fw.close(); //FileWriter必须后关闭,否则文件不会正常保存} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}}}}

0 0
原创粉丝点击