代碼---類比一個簡單的記事本

來源:互聯網
上載者:User

package com.practice4;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyNotepad extends Frame implements ActionListener{
   
 MenuBar mb;
 Menu m1,m2;
 MenuItem mi_open,mi_save,mi_saveAs,mi_exit;
 TextArea ta;
  String sfd="";
 FileDialog fd_file,fd_save,fd_saveAs;
 BufferedReader br=null;
 BufferedWriter bw=null;
    public MyNotepad()
    {
     super("記事本");
        m1=new Menu("檔案");
        m2=new Menu("協助");
        mb=new MenuBar();
       
        ta=new TextArea();
        mi_open=new MenuItem("開啟");
        mi_save=new MenuItem("儲存");
        mi_saveAs=new MenuItem("另存新檔");
        mi_exit=new MenuItem("退出");
        fd_file=new FileDialog(this,"開啟",FileDialog.LOAD);
        fd_save=new FileDialog(this,"儲存",FileDialog.SAVE);
       
       
        mb.add(m1);
        mb.add(m2);
        m1.add(mi_open);
        m1.add(mi_save);
        m1.add(mi_saveAs);
        m1.add(mi_exit);
       
        mi_open.addActionListener(this);
        mi_save.addActionListener(this);
        mi_saveAs.addActionListener(this);
        mi_exit.addActionListener(this);
      
        addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
        });
        this.setMenuBar(mb);
        add(ta);
       
        setBounds(200,200,750,650);
           setVisible(true);
    }
   
 public static void main(String[] args) {
  new MyNotepad();

 }
 public void actionPerformed(ActionEvent e) {
  String s=e.getActionCommand();
 
  if(s.equals("開啟"))
  {
         fd_file.setVisible(true);
         String stf=fd_file.getFile();
   String std=fd_file.getDirectory();
 
   if((stf!=null)&&(std!=null))
   {
    sfd=stf+std;
    openFile(sfd);

   }
        
  }else if(s.equals("儲存"))
  {
   if(sfd==null||sfd.equals(""))
   {
    saveFileAs(sfd);
   }
   else
    saveFile(sfd);
  
  }else if(s.equals("另存新檔"))
  {
 
   saveFileAs(sfd);
  }else if(s.equals("退出"))
  {
   System.exit(0);
  }
 }
 public void openFile(String s)
 {
      ta.setText("");
    setTitle(sfd+"-記事本");
     try{
    br=new BufferedReader(new FileReader(s));
    String st=br.readLine();
    while(st!=null)
    {
  
     ta.append(st+"\n");
     st=br.readLine();
    }
   }catch(IOException e)
   {
    e.toString();
   }finally{
    if(br!=null)
     try{
       br.close();
     }catch(IOException e)
     {
      e.toString();
     }
  
   }
  
  
 }
 public void saveFile(String s)
 {
  String st=ta.getText();
  try{
   PrintWriter pw=new PrintWriter(new FileWriter(s));
   pw.println(st);
  }catch(IOException e)
  {
   e.toString();
  }finally
  {
   if(bw!=null)
   try{
    bw.close();
   }catch(IOException e)
   {
    e.toString();
  
      }
   }
 
 }
 public void saveFileAs(String s)
 {
  fd_save.setVisible(true);
  String std=fd_save.getDirectory();
  String stf=fd_save.getFile();
  if((std!=null)&&(stf!=null))
  {
   sfd=std+stf;
   saveFile(sfd);
   setTitle(sfd+"-記事本");
  }
 }

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.