JAVA 事例教程(1)

类别:Java 点击:0 评论:0 推荐:

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

本文地址:http://com.8s8s.com/it/it13875.htm