JTextField实现实时动态监听

今天讲一讲关于实现JTextField实时动态监听的功能。 想必大家都买过火车票,大家是否还记得在输入要查询火车票的时候,下面的JTable会根据输入的信息,马上动态的更新查询的结果。

那么今天就来为大家讲述实现的过程

第一:想要实时动态的监听文本框每输入的内容,需要利用JTextField的抽象类JTextComponent,调用getDocument()方法来返回一个Document对象
//获取与编辑器关联的模型
Document doc = textField.getDocument();


第二:利用获取的Document对象,来添加一个DocumentListener监听器。因为该监听器就可以实现动态的跟踪文本框的输入内容。实现DocumentListener接口,必须重写该接口中的三个方法

1、void insertUpdate(DocumentEvent e)
2、void removeUpdate(DocumentEvent e)
3、void changedUpdate(DocumentEvent e)


第三:下面给出一个简短的代码片段,供给大家参考
package com.gxa.edu;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.Document;
import javax.swing.event.DocumentListener;
import javax.swing.event.DocumentEvent;

/**
* author:国信安百杰
*/
public class TextFieldFrame extends JFrame implements DocumentListener {

	private JTextField textField;
	
	public TextFieldFrame() {
		super("动态实时监听TextField");
		init();
	}
	
	public void init() {
		textField = new JTextField();
		
		//获取与编辑器关联的模型
		Document doc = textField.getDocument();
		
		//添加DocumentListener监听器
		doc.addDocumentListener(this);
	}
	
	/**
	* 实现DocumentListener接口中insertUpdate方法
	* 该方法可以跟踪文本框中输入的内容
	*/
	public void insertUpdate(DocumentEvent e) {
		Document doc = e.getDocument();
		String s = doc.getText(0, doc.getLength); //返回文本框输入的内容
	}
	
	/**
	* 实现DocumentListener接口removeUpdate方法
	* 该方法可以跟踪文本框中移除的内容,例如:在文本框中点击Backspace
	*/
	public void removeUpdate(DocumentEvent e) {
		Document doc = e.getDocument();
		String s = doc.getText(0, doc.getLength); //返回文本框输入的内容
	}
	
	/**
	* 实现DocumentListener接口changedUpdate方法
	* 该方法可以跟踪当文本框中已存在的内容改变时,获取相应的值
	*/
	public void changedUpdate(DocumentEvent e) {
		Document doc = e.getDocument();
		String s = doc.getText(0, doc.getLength); //返回文本框输入的内容
	}

}

你可能感兴趣的:(swing)