자바(Java)/JAVA 2SE

메모장 프로그램

본클라쓰 2009. 1. 27. 15:49

[ 메모장 프로그램 ]

 

● 내 용: 텍스트 문서 파일을 이용하여 텍스트 문서를 읽고 쓰는 프로그램

● 입출력 방법: Frame 클래스 사용(윈도우창)

● 핵 심: AWT 사용, File 입출력 사용

[ File Dialog 사용법 ]

FileDialog file = new FileDialog(this, "Open", 0); 
file.show(); 
String path = file.getDirectory(); 
String fileName = file.getFile(); 
         

   

[ File 입력 방법 ]

BufferedReader in = new BufferedReader(new FileReader(path + fileName));

while(in.ready())  { 
    text += in.readLine() + "\n"; 

in.close(); 

  

[ File 출력 방법 ]

BufferedWriter out = new BufferedWriter(new FileWriter(path + fileName)); 
out.write(text, 0, text.length()); 
out.flush(); 
out.close();

 

[ 소스코드 ]

/*
 *  제   목  : 메모장
 *  작성일 : 2009. 01. 27
 *  Text문서를 읽고 쓰는 프로그램(열기하고 저장만 되는 간단한 프로그램)
 */
import java.io.*;
import java.awt.*;
import java.awt.event.*;

 

public class Simulator extends Frame implements ActionListener {
      MenuBar mb;  // 메뉴바 클래스
      TextArea  textarea;
      MenuItem fileNew, fileOpen, fileSave, fileExit; // 메뉴 아이템


      public Simulator() {
          super("Simulator"); // 메뉴바를 담을 Frame 클래스 생성
          mb = new MenuBar(); // 메뉴바 생성
          setMenuBar(mb); // Frame에 메뉴바를 추가
         
          /*
           * file에 대한 메뉴 클래스
           */
          Menu file = new Menu("파일"); 
          fileNew = new MenuItem("새 글");
          fileNew.addActionListener(this);
          MenuShortcut N = new MenuShortcut(KeyEvent.VK_N, false);
          fileNew.setShortcut(N);
          fileOpen = new MenuItem("열기");
          fileOpen.addActionListener(this);
          MenuShortcut O = new MenuShortcut(KeyEvent.VK_O, false);
          fileOpen.setShortcut(O);
          fileSave = new MenuItem("저장하기");
          fileSave.addActionListener(this);
          MenuShortcut S = new MenuShortcut(KeyEvent.VK_S, false);
          fileSave.setShortcut(S);
          fileExit = new MenuItem("종료");
          fileExit.addActionListener(this);
          MenuShortcut x = new MenuShortcut(KeyEvent.VK_X, true);
          fileExit.setShortcut(x);
          file.add(fileNew);
          file.add(fileOpen);
          file.add(fileSave);
          file.addSeparator();
          file.add(fileExit);
         
          /*
           * help에 대한 메뉴 클래스
           */
          Menu help = new Menu("도움말");
          mb.add(file);
          mb.add(help);
          mb.setHelpMenu(help);

          textarea = new TextArea();
          add("Center", textarea);
         
          /*
           * 윈도우 종료 메소드
           */
          addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent evt){
            dispose();
            System.exit(0);
           }
          });
         
          //pack();
          setBounds(10,10, 500,250);
          setVisible(true);
      }

 

     /*
      * 메뉴창을 선택했을 경우 실행되는 소스
      */

      public void actionPerformed(ActionEvent e){
          String command = e.getActionCommand();
         
          if( command.equals("열기") ) {
           /* fileDialog 창 활성화 */
           FileDialog file = new FileDialog(this, "Open", 0);
           file.show();
           String path = file.getDirectory();
           String fileName = file.getFile();
           String text = "";
           textarea.setText("");  // 텍스트 파일을 열기전 TextArea 초기화
          
           try  {
            BufferedReader in = new BufferedReader(new FileReader(path + fileName));

            while(in.ready())  {
             text += in.readLine() + "\n";
            }
            in.close();
           } catch(IOException except){}
           textarea.append(text);
          
          }else if( command.equals("저장하기") ) {
           String text = textarea.getText();
           FileDialog file = new FileDialog(this, "Save", 1);
           file.show();
           String path = file.getDirectory();
           String fileName = file.getFile();

           try
           {
            BufferedWriter out = new BufferedWriter(new FileWriter(path + fileName));
            out.write(text, 0, text.length());
            out.flush();
            out.close();
           }   catch(IOException except) {}
          
          }else if( command.equals("종료") ){
           System.exit(0);
          }else if( command.equals("새 글")){
           textarea.setText("");
          }
         
      }

 

      public static void main(String args[]) {
           new Simulator();
      }
    }

 

 

[ 결 과 ]