package myMenu;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MyMenu {
private Frame f;
private MenuBar mb;
private Menu m;
private TextArea ta;
private MenuItem openItem,saveItem,closeItem;
private FileDialog openDia,saveDia;
private File file;
MyMenu()
{
init();
}
public void init()
{
f=new Frame("my window");
f.setBounds(300, 100, 650, 600);
f.setVisible(true);
mb=new MenuBar();
ta=new TextArea();
m=new Menu("檔案");
openItem=new MenuItem("打開");
saveItem=new MenuItem("儲存");
closeItem=new MenuItem("退出");
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m);
myEven();
openDia=new FileDialog(f,"我要打開",FileDialog.LOAD);
saveDia=new FileDialog(f,"我要儲存",FileDialog.SAVE);
f.setMenuBar(mb);
f.add(ta);
}
private void myEven()
{
openItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openDia.setVisible(true);
String dirPath=openDia.getDirectory();
String fileName=openDia.getFile();
if(dirPath==null ||fileName==null)
return ;
ta.setText("");
file=new File(dirPath,fileName);
try {
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
bufr.close();
} catch (Exception e1) {
throw new RuntimeException("讀取失敗");
}
}
});
saveItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(file==null)
{
saveDia.setVisible(true);
String dirPath=saveDia.getDirectory();
String fileName=saveDia.getFile();
if(dirPath==null || fileName==null)
return ;
file=new File(dirPath,fileName);
}
BufferedWriter buf;
try {
buf = new BufferedWriter(new FileWriter(file));
String text=ta.getText();
buf.write(text);
buf.flush();
buf.close();
} catch (IOException e1) {
throw new RuntimeException("讀取失敗");
}
}
});
closeItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new MyMenu();
}
}