모의 메모장 만들어 보기
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 miNew, miSaveAs, miOpen, miExit;
//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 |