教程
// ************************************
// 一个简单的JAVA 程序
// 功能是演示一个小窗口,并具有读写文件的功能。
// @author Gaogao
// @date 2004-11-04
// ************************************
// ************************************
// 引入GUI和GUI事件处理的类,和I/O管理的类
// ************************************
import java.awt.*;
import java.awt.event.*;
import java.io.*;
// ************************************
// TestOne,一个演示菜单和按钮的Application
// 程序。
// ************************************
public class TestOne extends Frame implements ActionListener {
//继承自Frame,实现ActionListener接口
//Frame是一个窗体的框架类,Actionlistener是事件接口,实现他
//可以做事件处理。
// ************************************
// 声明变量
// ************************************
// 菜单控制
private MenuBar mb;
private Menu mFile;
private MenuItem miLoad;
private MenuItem miSave;
private MenuItem miExit;
// 按钮
private TextArea textArea;
// 磁盘管理
private File file;
// 文件名
public static final String FILENAME_STR = "Love.TXT";
// ************************************
// 构造
// ************************************
public TestOne() {
init();
putObjectsToMyFrame();
addListenersToObjects();
setTheWindow();
}
// ************************************
// 分配对象内存
// ************************************
private void init() {
mb = new MenuBar();
mFile = new Menu("File");
miLoad = new MenuItem("Load");
miSave = new MenuItem("Save");
miExit = new MenuItem("Exit");
textArea = new TextArea("");
}
// ************************************
// 装各个部件到窗口
// ************************************
private void putObjectsToMyFrame() {
setMenuBar(mb);
mb.add(mFile);
mFile.add(miLoad);
mFile.add(miSave);
mFile.add(miExit);
add(textArea);
}
// ************************************
// 设置窗口
// ************************************
private void setTheWindow() {
this.setSize(400,300);
this.show();
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}
);
}
// ************************************
// 设置事件监听器
// ************************************
private void addListenersToObjects() {
miLoad.addActionListener(this);//将miLoad这个菜单的事件监听放在这个窗口的实例中
miSave.addActionListener(this);
miExit.addActionListener(this);
}
// ************************************
// 事件监听器(就是这个类的事例)监听到事件后
// 调用。此方法是ActionListener接口中抽象
// 方法的实现。
// ************************************
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == miLoad)
{
//
System.out.println("Loading");
DataInputStream dis;
try {
file = new File(FILENAME_STR);
dis = new DataInputStream(new FileInputStream(file));
textArea.setText("");
////没JAVA DOC 文档 不会写了。待完善。
dis.close();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
else if (ae.getSource() == miSave)
{
//
System.out.println("Saving");
DataOutputStream dos;
try {
file = new File(FILENAME_STR);
dos = new DataOutputStream(new FileOutputStream(file));
int i = 0;
String temp = textArea.getText();
while (i < temp.length())
{
dos.writeChar(temp.charAt(i++));
}
dos.close();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
else if (ae.getSource() == miExit)
{
//退出应用程序
System.out.println("Exit");
System.exit(0);
}
}
// ************************************
// 程序入口。
// ************************************
public static void main(String[] args) {
new TestOne();
}
}