1 /* 2 *计事本开发 3 *字节 4 * 5 */ 6 package com.test3; 7 import java.io.*; 8 import java.awt.*; 9 import java.awt.event.ActionEvent; 10 import java.awt.event.ActionListener; 11 12 import javax.swing.*; 13 14 public class Notepad extends JFrame implements ActionListener{ 15 //定义需要要组件 16 JTextArea jta=null; 17 //定义菜单条 18 JMenuBar jmb=null; 19 //定义子菜单 20 JMenu jm1=null; 21 //定义子菜单中的小菜单 22 JMenuItem jml1=null; 23 JMenuItem jml2=null; 24 public static void main(String[] args) { 25 Notepad not=new Notepad(); 26 } 27 public Notepad() 28 { 29 //创建文本域 30 jta=new JTextArea(); 31 //创建菜单 32 jmb=new JMenuBar(); 33 jm1=new JMenu("文件"); 34 35 //设置助记符 36 jm1.setMnemonic('F'); 37 //设置最小菜单 38 jml1=new JMenuItem("打开",new ImageIcon("win.png")); 39 jml2=new JMenuItem("另存为",new ImageIcon("servir.png")); 40 //注册监听对打开进行事件监听 41 jml1.addActionListener(this); 42 jml1.setActionCommand("open"); 43 44 //注册监听对保存进行事件监听 45 jml2.addActionListener(this); 46 jml2.setActionCommand("svr"); 47 48 //加入 49 this.setJMenuBar(jmb); 50 //把jm1放入jmb 51 jmb.add(jm1); 52 //把item放入Menu 53 jm1.add(jml1); 54 jm1.add(jml2); 55 this.add(jta); 56 //设置面板大小 57 this.setSize(400,300); 58 this.setTitle("记事本"); 59 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 60 this.setVisible(true); 61 } 62 //实现鼠标接口 63 @Override 64 public void actionPerformed(ActionEvent e) { 65 // TODO Auto-generated method stub 66 if (e.getActionCommand().equals("open")) { 67 System.out.println("打开"); 68 //文件选择组件 69 JFileChooser jfc1=new JFileChooser(); 70 //设置名字 71 jfc1.setDialogTitle("请选择文件..."); 72 //使用默认方式 73 jfc1.showOpenDialog(null); 74 //显示 75 jfc1.setVisible(true); 76 //得到用户选择文件的全路径,绝对路径 77 String filename=jfc1.getSelectedFile().getAbsolutePath(); 78 79 FileReader fr=null; 80 BufferedReader br=null; 81 82 try { 83 fr=new FileReader(filename); 84 br=new BufferedReader(fr); 85 86 //从文件中读取信息并显示开jta就是文本组件 87 88 String s=""; 89 String allCon=""; 90 while ((s=br.readLine())!=null) { 91 allCon+=s+"\r\n"; 92 93 } 94 //放入组件即可 95 jta.setText(allCon); 96 } catch (Exception e2) { 97 // TODO: handle exception 98 e2.printStackTrace(); 99 }finally{ 100 //必须关闭文件流 101 try { 102 br.close(); 103 fr.close(); 104 } catch (Exception e3) { 105 // TODO: handle exception 106 e3.printStackTrace(); 107 } 108 } 109 //调试输出路径 110 System.out.println(filename); 111 }else if (e.getActionCommand().equals("svr")) { 112 System.out.println("保存"); 113 //出现保存对话框 114 JFileChooser jfc=new JFileChooser(); 115 jfc.setDialogTitle("另存为"); 116 //默认方式显示 117 jfc.showSaveDialog(null); 118 //显示出来 119 jfc.setVisible(true); 120 121 //得到用户希望把文件保存到何处的全路径 122 String file=jfc.getSelectedFile().getAbsolutePath(); 123 124 //准备写入到指定文件 125 FileWriter fw=null; 126 BufferedWriter bw=null; 127 128 try { 129 fw=new FileWriter(file); 130 bw=new BufferedWriter(fw); 131 //把文件写出去 132 bw.write(this.jta.getText()); 133 } catch (Exception e2) { 134 // TODO: handle exception 135 e2.printStackTrace(); 136 }finally{ 137 try { 138 bw.close(); 139 fw.close(); 140 } catch (Exception e3) { 141 // TODO: handle exception 142 e3.printStackTrace(); 143 } 144 } 145 } 146 } 147 }
浙公网安备 33010602011771号