通過JAVA程式寫一個簡易的記事本
阿新 • • 發佈:2019-01-03
程式碼如下:
/** * @作者:劉猛 * @時間:2017.11.01 * @功能:簡單的記事本功能 * @涉及主要知識點:Java的圖形化介面、ActiveListener監聽、檔案的io流 * **/ package com.notepal; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; 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 NotePal extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; //定義一個文字框 JTextArea jTextArea = null; //定義一個選單欄 JMenuBar jMenuBar = null; //定義一個選單 JMenu jMenu1 = null; //定義一個“開啟”子選項 JMenuItem jMenuItem1 = null; //定義一個“儲存”子選項 JMenuItem jMenuItem2 = null; //定義一個檔案選擇 JFileChooser jFileChooser = null; //定義一個FileReader檔案輸入流 FileReader fileReader = null; //定義一個FileWriter輸出流 FileWriter fileWriter = null; //定義一個緩衝字元輸入流 BufferedReader bufferedReader = null; //定義一個緩衝字元輸出流 BufferedWriter bufferedWriter = null; @SuppressWarnings("unused") public static void main(String[] args) { // TODO Auto-generated method stub //例項化 NotePal notePal = new NotePal(); } //建構函式 public NotePal() { //例項化jTextArea jTextArea = new JTextArea(); //例項化jMenuBar jMenuBar = new JMenuBar(); //例項化就jMenu1,並設定其名字為“檔案” jMenu1 = new JMenu("檔案"); //例項化就MenuItem1,並將其命名為“開啟” jMenuItem1 = new JMenuItem("開啟"); //實現對jMenuItem1的監聽 jMenuItem1.addActionListener(this); jMenuItem1.setActionCommand("開啟"); //例項化就MenuItem2,並將其命名為“儲存” jMenuItem2 = new JMenuItem("儲存"); //實現對jMenuItem2的監聽 jMenuItem2.addActionListener(this); jMenuItem2.setActionCommand("儲存"); //設定jTextArea的背景顏色為 jTextArea.setBackground(Color.CYAN); //將元件新增上各自的位置 //將jMenuBar新增到JFrame中 this.setJMenuBar(jMenuBar); //將jMenu新增到jMenuBar中 jMenuBar.add(jMenu1); //將jMenuTItem1新增到Jmenu1中 jMenu1.add(jMenuItem1); //將jMenuTItem2新增到Jmenu1中 jMenu1.add(jMenuItem2); //將jTextArea新增到JFrame中 this.add(jTextArea); //設定窗體的標題 this.setTitle("記事本(簡易版)"); //設定窗體的大小 this.setSize(800,600); //當關閉視窗的時候,關閉程序 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //顯示視窗 this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand().equals("開啟")) { //例項化一個JFileChoose jFileChooser = new JFileChooser(); //設定檔案選擇視窗的名字 jFileChooser.setDialogTitle("劉猛讓您選擇自己的檔案... ..."); //設定檔案視窗的預設路徑 jFileChooser.showOpenDialog(null); //顯示檔案視窗 jFileChooser.setVisible(true); //用address儲存使用者編輯檔案的絕對路徑 String address = jFileChooser.getSelectedFile().getAbsolutePath(); try { //為fileReader分配空間 fileReader = new FileReader(address); //為bufferedReader分配空間 bufferedReader = new BufferedReader(fileReader); //定義一個str判斷輸入的字元是否已經為空 String str = ""; //定義一個strAll接收檔案的全部資訊 String strAll = ""; //讀取檔案資訊,並將其儲存到strAll中 while((str = bufferedReader.readLine()) != null) { strAll += str + "\r\n"; } //將strAll中的全部資訊顯示到JTextArea上 jTextArea.setText(strAll); } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); }finally{ try { //關閉檔案 bufferedReader.close(); fileReader.close(); } catch (Exception e3) { // TODO: handle exception e3.printStackTrace(); } } } //如果使用者點的是儲存按鈕 if(e.getActionCommand().equals("儲存")) { //建立一個儲存視窗 JFileChooser jFileChooser1 = new JFileChooser(); //設定視窗名字 jFileChooser1.setDialogTitle("另存為... ..."); //設定預設設定 jFileChooser1.showSaveDialog(null); //顯示視窗 jFileChooser1.setVisible(true); try { //為fileWrite分配空間 fileWriter = new FileWriter(jFileChooser1.getSelectedFile().getAbsolutePath()); //為bufferedWrite分配空間 bufferedWriter = new BufferedWriter(fileWriter); //儲存進去 bufferedWriter.write(this.jTextArea.getText()); } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); }finally{ //關閉檔案 try { bufferedWriter.close(); fileWriter.close(); } catch (Exception e3) { // TODO: handle exception e3.printStackTrace(); } } } } }