package Notepadpackage;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Notepad extends Frame implements WindowListener{
private NoteActionListener nal = null;
public TextArea ta = null;
private MenuBar mb = null;
private Menu mfile = null;
private String filename = "새파일";
private FileDialog fd = null;
public Notepad(){
fd = new FileDialog(this);
ta = new TextArea();
add(ta,BorderLayout.CENTER);
nal = new NoteActionListener(this,fd);
mb = new MenuBar();
mfile = new Menu("파일");
itemAdd("새파일",mfile);
itemAdd("열기",mfile);
itemAdd("저장",mfile);
itemAdd("다른 이름으로 저장",mfile);
itemAdd("종료",mfile);
mb.add(mfile);
setMenuBar(mb);
setTitle(filename);
addWindowListener(this);
}
private void itemAdd(String title, Menu m){
MenuItem mi = new MenuItem(title);
mi.addActionListener(nal);
m.add(mi);
}
public void windowClosing(WindowEvent we){
dispose();
System.exit(0);
}
//window event
public void windowClosed(WindowEvent we){}
public void windowOpened(WindowEvent we){}
public void windowIconified(WindowEvent we){}
public void windowDeiconified(WindowEvent we){}
public void windowDeactivated(WindowEvent we){}
public void windowActivated(WindowEvent we){}
//file read and save
public void loadFile(String fn){
File file = new File(fn);
FileReader fr = null;
BufferedReader br = null;
try{
fr = new FileReader(file);
br = new BufferedReader(fr);
String str = null;
ta.setText("");
while((str = br.readLine())!=null){
ta.append(str+"\n");
}
}catch(IOException ioe){
ioe.printStackTrace();
}
filename = fn;
setTitle(fn);
}
public void saveFile(String fn){
File file = new File(fn);
try{
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
ps.print(ta.getText());
}catch(IOException ioe){
System.out.println("아래와 같은 이유로 파일로부터 내용을 읽을 수 없습니다.");
ioe.printStackTrace();
}
filename = fn;
setTitle(fn);
}
public void newFile(){
filename = "새파일";
ta.setText("");
setTitle(filename);
}
public static void main(String args[]){
Notepad np = new Notepad();
np.setSize(600,450);
np.setVisible(true);
}
}