본문 바로가기

JAVA/기본다지기

JAVA 21일차 필기

모의 메모장 만들어 보기


package com.javalesson.ch20awt;


import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.ObjectOutputStream;

import java.io.StringWriter;


public class L03TextEditor extends Frame{

String fileName;

TextArea ta;

MenuBar mb;

Menu menu;

MenuItem miNewmiSaveAsmiOpenmiExit;

             //fileW   fileR

public L03TextEditor(String title){

super(title);

ta = new TextArea();

super.add(ta,"Center");

mb = new MenuBar();

menu = new Menu("File");

miNew new MenuItem("New");

miSaveAs new MenuItem("Save");

miOpen new MenuItem("Open");

miExit new MenuItem("Exit");


ActionListener mh = new MenuHandler();

miNew.addActionListener(mh);

miOpen.addActionListener(mh);

miSaveAs.addActionListener(mh);

miExit.addActionListener(mh);

menu.add(miNew); 

menu.add(miOpen); 

menu.add(miSaveAs);

menu.addSeparator();

menu.add(miExit);

mb.add(menu);

this.setMenuBar(mb);

super.setSize(500, 300);

super.setVisible(true);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

public void saveAs(String fileName){

FileWriter fw;

BufferedWriter bw;

try{

fw = new FileWriter(fileName);

bw = new BufferedWriter(fw);

bw.write(ta.getText());

bw.close();

}catch(IOException e){

}

}

public void fileOpen(String fileName){

FileReader fr;

BufferedReader br;

StringWriter sw;//sw.writer

    //ta.setText(sw);

try {

fr = new FileReader(fileName);

br = new BufferedReader(fr);

sw = new StringWriter();

String line;

while((line=br.readLine())!=null){

sw.write(line+"\r\n");

}

ta.setText(sw.toString());

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

class MenuHandler implements ActionListener{

public void actionPerformed(ActionEvent e) {

String cmd = e.getActionCommand();

if(cmd.equals("New")){

ta.setText("");

}else if(cmd.equals("Open")){

FileDialog fd = new FileDialog(L03TextEditor.this, "file open");

fd.setVisible(true);

fileName = fd.getDirectory()+fd.getFile();

fileOpen(fileName);

}else if(cmd.equals("Save")){

FileDialog fd = new FileDialog(L03TextEditor.this, "save as", FileDialog.SAVE);

fd.setVisible(true);

fileName = fd.getDirectory()+fd.getFile();

saveAs(fileName);

}else if(cmd.equals("Exit")){

System.exit(0);

}

}

}

public static void main(String[] args) {

new L03TextEditor("메모장");

}

}


'JAVA > 기본다지기' 카테고리의 다른 글

JAVA 23일차 필기  (0) 2016.09.08
JAVA 22일차 필기  (1) 2016.09.07
JAVA 20일차 필기  (1) 2016.09.05
JAVA 19일차 필기  (1) 2016.09.01
JAVA 18일차 필기  (1) 2016.08.31