자바 연습 네번째!!
자바 awt , event , io 를 이용하여
메뉴만들기 도전 해보겠습니다.


자바에서 아주 기본적인 예제로 보시면

되겠습니다.


메뉴는 어디에서든 필요한 필수 입니다.

천천히 따라해보세요 ^^


import java.awt.*;
import java.awt.event.*;
import java.io.*;


class TextEditor extends Frame {
 String fileName;
 TextArea content;
 MenuBar mb;
 Menu mfile;
 MenuItem minew , miopen , misaveas , miexit ;

 TextEditor(String title){
   super(title);
   content = new TextArea();
   add(content);

   mb = new MenuBar();
   mfile = new Menu("파일");
   minew = new MenuItem("New");
   miopen = new MenuItem("open");
   misaveas = new MenuItem("save As");
   miexit = new MenuItem("Exit");
   
   mfile.add(mfile);
   mfile.add(minew);
   mfile.add(miopen);
   mfile.add(misaveas);
   mfile.add(miexit);

   mb.add(mfile);  
   setMenuBar(mb);  // 프레임에 menubar 를 포함시긴다
   
   // 메뉴에 이벤트 핸들러를 등록한다
  MyHandler handler = new MyHandler();
  minew.addActionListener(handler);
  miopen.addActionListener(handler);
  misaveas.addActionListener(handler);
  miexit.addActionListener(handler);

  setSize(300, 200);
  setVisible(true);

 }

 // 선택된 파일의 내용을 읽어서  TextArea에 보여주는 메서드
 void fileOpen(String fileName){
   FileReader fr;
   BufferedReader br;
   StringWriter sw;

   try{
     fr = new FileReader(fileName);
     br = new BufferedReader(fr);
     sw = new StringWriter();

     int ch = 0;
     while((ch=br.read()) != -1) {
      sw.write(ch);
     }
     br.close();
     content.setText(sw.toString());
   }catch (IOException e){
    e.printStackTrace();
   }
 }

 void saveAs(String fileName){
   FileWriter fw;
   BufferedWriter bw;
   
   try{
    fw = new FileWriter(fileName);
    bw = new BufferedWriter(fw);
    bw.write(content.getText());
    bw.close();
   } catch (IOException ie){
    ie.printStackTrace();
   }
 }
 public static void main(String args[]){
   TextEditor main = new TextEditor("Text Editor");
 }

 //메뉴를 클릭했을 때 메뉴별 처리코드

 class MyHandler implements ActionListener {
   public void actionPerformed(ActionEvent e){
    String command = e.getActionCommand();

   if(command.equals("New")){
    content.setText("ff");
   }else if (command.equals("open")){
    FileDialog fileOpen =
     new FileDialog(TextEditor.this , "파일열기");
    fileOpen.setVisible(true);
    fileName = fileOpen.getDirectory() + fileOpen.getFile();
    System.out.println(fileName);
    fileOpen(fileName);
   } else if (command.equals("save As")){
     FileDialog fileSave =
      new FileDialog(TextEditor.this , "파일저장" , FileDialog.SAVE);
     fileSave.setVisible(true);
     fileName = fileSave.getDirectory() + fileSave.getFile();
     System.out.println(fileName);
     //현재 TextArea 의 내용을 선택된 저장한다.
     saveAs(fileName);
   } else if (command.equals("Exit")) {
    System.exit(0);
   }
   }
 }}


+ Recent posts