使用 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
{