標籤:one rgs int frame get 使用者 ima pad menuitem
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的檔案,效果如下:
Java檔案(io)編程——簡易記事本開發