2011年4月19日

<Java> JVA401-英文一點通



(這題的版面配置沒寫好 圖形有些醜)
 
重點:
1. 讀檔
2. 字串處理
3. map的方法

==========================

import java.util.* ;
import java.io.* ;
import java.awt.* ;
import java.awt.event.* ;
public class JVA401 extends Frame implements ActionListener
{
   TextArea origin = new TextArea("請在此輸入欲轉換之英文") ;
   TextArea target = new TextArea("") ;
   Button process = new Button("開始翻譯") ;
   Button clear = new Button("清除文字") ;
   public JVA401()
   {
         //請在此撰寫程式
      super("英文一點通");
      Panel p = new Panel();
      p.add(process);
      p.add(clear);
      setLayout(new GridLayout(3,1));   //配置
      add(origin);
      add(target);
      add(p);

         //請在此撰寫程式
      process.addActionListener(this);
      clear.addActionListener(this);
      setSize(300,500);
      addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e){
            e.getWindow().dispose();
            System.exit(0);
         }
      });
   }
   public static void main(String args[])
   {
      JVA401 eng = new JVA401() ;
      eng.setVisible(true) ;    
   }
   public void actionPerformed(ActionEvent e)
   {
      String cmd = e.getActionCommand() ;
      if(cmd.equals("開始翻譯"))
      {
         HashMap map = new HashMap();
         try
         BufferedReader br = new BufferedReader(new FileReader("JVA401.cfg"));
         String str = "";
       
         do{
            str = br.readLine();
            if(str == null)
               break;
            String lan[] = str.split("-");
            map.put(lan[0].toLowerCase(),lan[1]);

         }while(true);
         }catch(FileNotFoundException fe){
            origin.setText("找不到對照檔 JVA401.cfg");
            target.setText("找不到對照檔 JVA401.cfg");
         }catch(IOException ie){
            target.setText("IOException");
         }
       
         //取得使用者的輸入
         String unparsed = origin.getText();
         String words[] = unparsed.split(" ");
       
         //開始置換,並秀在螢幕上,注意,要將裡頭所有字轉成小寫,方能不管大小寫
         String result = "";
         for(int i = 0; i<words.length ; i++){
            Object o = map.get(words[i].toLowerCase());
            if( o != null )
               result += (String)o;
            else
               result += words[i];
            result += " ";
         }
         target.setText("");
         target.setText(result);
       
                      
       
      }else if(cmd.equals("清除文字"))
      {
                  //請在此撰寫程式
         origin.setText("");
         target.setText("");

      }
   }
 
}

參考網頁:
Java A+

沒有留言:

張貼留言