運行效果如下: 點擊文件按鈕,點擊打開菜單項,選擇一個文本文件,效果如下: 打開後,內容顯示如下: 對內容稍作修改,另存為名為sss的文件,效果如下: ...
1 public class NotePad extends JFrame implements ActionListener{ 2 3 //定義需要的組件 4 JTextArea jta=null; //多行文本框 5 6 JMenuBar jmb=null; //菜單條 7 JMenu jm1=null; //菜單 8 JMenuItem jmi1=null,jmi2=null; //菜單項 9 10 public static void main(String[] args) { 11 NotePad np=new NotePad(); 12 13 } 14 15 public NotePad(){ //構造函數 16 17 jta=new JTextArea(); //創建jta 18 jmb=new JMenuBar(); 19 jm1=new JMenu("文件"); 20 jm1.setMnemonic('F'); //設置助記符 21 22 jmi1=new JMenuItem("打開",new ImageIcon("imag_3.jpg")); 23 jmi1.addActionListener(this); //註冊監聽 24 jmi1.setActionCommand("open"); 25 26 jmi2=new JMenuItem("保存"); 27 jmi2.addActionListener(this); 28 jmi2.setActionCommand("save"); 29 30 this.setJMenuBar(jmb); //加入 31 32 jmb.add(jm1); //把菜單放入菜單條 33 34 jm1.add(jmi1); //把item放入到Menu中 35 jm1.add(jmi2); 36 37 this.add(jta); //放入到JFrame 38 39 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 40 this.setSize(400,300); 41 this.setTitle("記事本"); 42 this.setIconImage((new ImageIcon("imag_2.jpg")).getImage()); 43 this.setVisible(true); 44 } 45 46 @Override 47 public void actionPerformed(ActionEvent arg0) { 48 //判斷是哪個菜單被選中 49 if(arg0.getActionCommand().equals("open")){ 50 51 //JFileChooser,創建一個文件選擇組件 52 JFileChooser jfc1=new JFileChooser(); 53 jfc1.setDialogTitle("請選擇文件……"); //設置名字 54 55 jfc1.showOpenDialog(null); //預設方式 56 jfc1.setVisible(true); //顯示 57 58 //得到用戶選擇的文件全路徑 59 String filename=jfc1.getSelectedFile().getAbsolutePath(); 60 61 FileReader fr=null; 62 BufferedReader br=null; 63 64 try { 65 fr=new FileReader(filename); 66 br=new BufferedReader(fr); 67 68 //從文件中讀取信息並顯示到jta 69 String s=""; 70 String allCon=""; 71 while((s=br.readLine())!=null){ //迴圈讀取文件,s不為空即還未讀完畢 72 allCon+=s+"\r\n"; 73 } 74 75 jta.setText(allCon); //放置到jta 76 77 } catch (Exception e) { 78 e.printStackTrace(); 79 }finally{ 80 81 try { 82 fr.close(); 83 br.close(); 84 } catch (Exception e) { 85 e.printStackTrace(); 86 } 87 } 88 }else if(arg0.getActionCommand().equals("save")){ 89 //出現保存對話框 90 JFileChooser jfc2=new JFileChooser(); 91 jfc2.setDialogTitle("另存為……"); 92 jfc2.showSaveDialog(null); //按預設的方式顯示 93 jfc2.setVisible(true); 94 95 //得到用戶希望把文件保存到何處,文件全路徑 96 String filename2=jfc2.getSelectedFile().getAbsolutePath(); 97 98 //準備寫入到指定文件 99 FileWriter fw=null; 100 BufferedWriter bw=null; 101 102 try { 103 fw=new FileWriter(filename2); 104 bw=new BufferedWriter(fw); 105 106 bw.write(this.jta.getText()); 107 } catch (Exception e) { 108 e.printStackTrace(); 109 }finally{ 110 try { 111 bw.close(); 112 } catch (IOException e) { 113 e.printStackTrace(); 114 } 115 } 116 } 117 } 118 }
運行效果如下:
點擊文件按鈕,點擊打開菜單項,選擇一個文本文件,效果如下:
打開後,內容顯示如下:
對內容稍作修改,另存為名為sss的文件,效果如下: