background image

使用 Swing 类
对于 Swing 中的 JTextField 类,实现监控的过程则相对复杂一些。JTextField 中没有设置
TextListener,而是将对文本的监视任务放入了另外一个接口 Document 中。因此首先要为
JTextField 对象申请一个 Document 接口对象,使用的方法是 JTextField1.getDocument()(本
文给出的 JTextField 对象名为 JTextField1)。获得 Document 后,就可以使用
addDocumentListener()来得到一个和 TextListener 功能类似的监听接口。DocumentListener 的
完整声明如下:

interface

 DocumentListener 

extends

 EventListener

它在包 java.swing.event.DocumentListener 中定义,其中包含了三个方法:

public

 void changedUpdate(DocumentEvent e):监听文本属性的变化;

public

 void insertUpdate(DocumentEvent e):监听文本内容的插入事件;

public

 void removeUpdate(DocumentEvent e):监听文本内容的删除事件。

和处理 TextField 组件一样,定义新类(本文为 Swing_OnValueChanged)、加入说明、编写代
码后,就可以实现所需功能了。
编程实现
下面给出实现监控功能的关键部分的 Java 代码。完整代码编译后在 Java 虚拟机上运行。
在两个编辑框中或输入或删除或选中后修改,只要文本框中的内容得到了确切的改变,
就会触发相应的事件,从而产生输出(在字符界面上)。

public

 

class

 JFrame1 

extends

 JFrame

{

public

 JFrame1()

//生成图形界面

 
……

//对 Exit 按钮的事件定义

 
btnAction exitAction = 

new

 btnAction();

JButton1.addActionListener(exitAction);

//定义 TextField 组件的文本监听

 
textField1.addTextListener(

new

 AWT_OnValue

Changed());

//定义 JTextField 组件的文本监听

 
JTextField1.getDocument().addDocumentListener
(

new

 Swing_OnValueChanged ());

}

//根据接口 TextListener 定义新 AWT_OnValue

 
Changed

class

 AWT_OnValueChanged 

implements

 TextListener

{