// ************************************ // 一个简单的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(); } }

|