import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class NoteDemo {
private Frame fr;
private TextArea ta;
private MenuBar bar;
private Menu m;
private MenuItem mi1,mi2,mi3,mi4,mi5;
private Font font;
private Dialog dia;
private Button but1,but2;
private FileDialog fd1,fd2;
private File file = null;
NoteDemo()
{
init();
}
public void init()
{
fr = new Frame("MyNote by__sho");
ta = new TextArea();
bar = new MenuBar();
m = new Menu("File");
mi1 = new MenuItem("New");
mi2 = new MenuItem("Open");
mi3 = new MenuItem("Save");
mi4 = new MenuItem("Save As");
mi5 = new MenuItem("Exit");
but1 = new Button("是");
but2 = new Button("否");
fd1 = new FileDialog(fr,"File",FileDialog.LOAD );
fd2 = new FileDialog(fr,"File",FileDialog.SAVE );
font = new Font("Monospaced" ,Font.BOLD,20);//新建一個字體對象
dia = new Dialog(fr,"是否保存?",true);
dia.setLayout(new FlowLayout());
dia.setBounds(530, 280, 140, 100);
fr.setBounds(200, 80, 700, 600);
fr.add(ta);
fr.setFont(font);//設置字體
m.add(mi1);
m.add(mi2);
m.add(mi3);
m.add(mi4);
m.add(mi5);
bar.add(m);
fr.setMenuBar(bar);
dia.add(but1);
dia.add(but2);
myEvent();
fr.setVisible(true);
}
public void myEvent()
{
fr.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//New
mi1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ta.setText("");
}
});
//Open
mi2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
fd1.setVisible(true);
String dirPath = fd1.getDirectory();//返回次對話框的目錄
String fileName = fd1.getFile();//獲取此文件對話框的選定文件
if(dirPath==null&&fileName==null)
return ;//下面的程序不運行
ta.setText("");
file = new File(dirPath,fileName);
try
{
BufferedReader bufr = new BufferedReader(new FileReader(file));
String str = null;
while((str = bufr.readLine())!=null)
{
ta.append(str +"\r\n");
}
bufr.close();//資源必須關閉
}
catch(IOException ex)
{
throw new RuntimeException("流無法讀取");
}
}
});
//Save
mi3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
saveMethod();
}
});
mi4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
fd2.setVisible(true);
String dirPath = fd2.getDirectory();//返回次對話框的目錄
String fileName = fd2.getFile();//獲取此文件對話框的選定文件
if(dirPath==null&&fileName==null)//判斷是否取消
return ;//下面的程序不運行
// ta.setText(" ");
file = new File(dirPath,fileName);
try
{
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
String str = ta.getText();
bufw.write(str);
bufw.close();
}
catch(IOException ed)
{
throw new RuntimeException("寫入流出現異常");
}
}
});
//Exit
mi5.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str = ta.getText();
if(str.equals(""))
System.exit(0);
else
{
dia.setVisible(true);
}
}
});
but1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
saveMethod();
}
});
but2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
ta.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
// ctrl和S同時按下
if((e.isControlDown())&&(e.getKeyCode() == e.VK_S))
{
saveMethod();
}
}
});
}
public void saveMethod()
{
if(file==null)
{
//文件爲空,那麼文件對話框就會跳出來
fd2.setVisible(true);
String dirPath = fd2.getDirectory();//返回次對話框的目錄
String fileName = fd2.getFile();//獲取此文件對話框的選定文件
if(dirPath==null&&fileName==null)//判斷是否取消
return ;//下面的程序不運行
// ta.setText(" ");
file = new File(dirPath,fileName);
}
try
{
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
String str = ta.getText();
bufw.write(str);
bufw.close();
}
catch(IOException ed)
{
throw new RuntimeException("寫入流出現異常");
}
}
public static void main(String[] args)
{
new NoteDemo();
}
}
用java寫的一個簡易記事本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.