JAVA 事例教程(1)

教程

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

时间: 2024-11-03 00:01:27

JAVA 事例教程(1)的相关文章

JAVA提高教程(14)-认识Map之LinkedHashMap

Java基础及提高教程目录 Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表.此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序).注意,如果在映射中重新插入 键,则插入顺序不受影响.(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中.) 此实现可以让客户避免未指定的.由 HashMap(及

JAVA提高教程(13)-认识Map之Hashtable

这个类,在使用上和HashMap的区别不大,其方法都是同步的(Synchronized). 1.package collection.lession13; 2. 3.import java.util.Hashtable; 4. 5./** 6. * 老紫竹JAVA提高教程(13)-认识Map之Hashtable<br> 7. * 这个类继承自一个已经过期不推荐使用的Dictionary类<br> 8. * 目前均推荐实现Map接口<br> 9. * 10. * 11.

JAVA提高教程(12)-认识Map之HashMap

Map里面使用率最多的,应该是HashMap吧,我们先来看看这个 1.package collection.lession12; 2. 3.import java.util.HashMap; 4.import java.util.Iterator; 5.import java.util.Map; 6. 7./** 8. * 老紫竹JAVA提高教程(12)-认识Map之HashMap<br> 9. * 基于哈希表的 Map 接口的实现.<br> 10. * 一个映射不能包含重复的键:

JAVA提高教程(11)-认识Map

Map可以为某些数据提供快速查找功能,通过关键字(key)可以快速的得到对应的 Value,而不用像List那样需要大范围的遍历或特别的算法. 1. 源代码 1.import java.util.ArrayList; 2.import java.util.HashMap; 3.import java.util.HashSet; 4.import java.util.Iterator; 5.import java.util.List; 6.import java.util.Map; 7.impor

JAVA提高教程(10)-认识List列表之Stack

不多说,我们直接看源代码 1.package collection.lession10; 2. 3.import java.util.Arrays; 4.import java.util.List; 5.import java.util.Stack; 6. 7./** 8. * 老紫竹JAVA提高教程(10)-认识List列表之Stack<br> 9. * 实现了LIFO的对象堆栈,<br> 10. * 类本身继承自Vector,扩展了一些方法<br> 11. * &l

JAVA提高教程(9)-认识List列表之LinkedList

LinkedList提供了将链接列表用作堆栈.队列或双端队列的方法,这里不再重复介绍 List的标准操作,只给出其独特方法的使用. 请注意其已经实现的接口 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E> 1.package collection.lession9; 2. 3.import java.util.Arrays; 4.imp

JAVA提高教程(8)-认识List列表之Vector

Vector和ArrayList的最大区别就是Vector的主要集合方法是线程同步的. 1.package collection.lession8; 2. 3.import java.util.Arrays; 4.import java.util.Collection; 5.import java.util.Enumeration; 6.import java.util.Iterator; 7.import java.util.List; 8.import java.util.Vector; 9

JAVA提高教程(7)-认识List列表之ArrayList

ArrayList是List里面使用率最高的. package collection.lession7; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; /** * 老紫竹JAVA提高教程(7)-认识List列表之ArrayList<br> * * @author 老紫竹 JAVA

JAVA提高教程(6)-认识List列表

列表是很常用的数据结构,感觉比Map和Set用的频率要高一些吧,因为我经常用其返 回数据库的操作结果集 package collection.lession6; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Stack; import