文本框监听器

给文本框加入监听器事件,监听文本框中的内容是否发生了变化。

JTextField中没有设置TextListener,而是将对文本的监视任务放入了另外一个接口Document中。因此首先要为JTextField对象申请一个Document接口对象,使用的方法是JTextField1.getDocument()(本文给出的JTextField对象名为JTextField1)。获得Document后,就可以使用addDocumentListener()来得到一个和TextListener功能类似的监听接口

查阅API后得知需要JTextField中的getDocument()函数,为这个方法添加文本监听器addDocumentListener,这个监听器下有三个自动写好的方法insertUpdate(),removeUpdate(),changedUpdate(),分别能够实现插入更新、删除更新、更改文本的监听。

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

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

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

由于JTextField中的文本只限于上述这三种形式的改变,因此通过getDocument()方法再增添此种监听器可以实现JTextField文本框输入数据的实时判断功能。  

 

package VideoTest;
 /*给文本框中加入监听器事件,当文本框中的数据发生变化时,
  * 在控制台说明相应的变化
 
  */
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
 
public class TestOverride extends JFrame implements DocumentListener{
	public static void main(String[] args){
		new TestOverride().init();
	}
	int i=0;
	JPanel contentPanel;
	JTextField textField;
	public void init(){
		contentPanel = new JPanel();
		setContentPane(contentPanel);
	//	contentPanel.setBounds(400,200,400,400);
		
		textField = new JTextField(20);
		textField.setBounds(50, 50, 150, 50);
		//textField.setColumns(10);
		
		//关键是下面这两行代码,
		Document document = textField.getDocument();
		document.addDocumentListener(this);
		
		contentPanel.add(textField);
		
		this.setLayout(null);
		this.setVisible(true);
		this.setBounds(500, 300, 500, 500);
		//this.setSize(500, 400);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//this.add(contentPanel);
		
	}
 
	@Override
	public void insertUpdate(DocumentEvent e) {
	 
		i++;
		System.out.println( "插入更新监听"+  "insert text" );
	}
 
	@Override
	public void removeUpdate(DocumentEvent e) {
		System.out.println("插入删除更新 的监听"+"remove text");
	}
 
	@Override
	public void changedUpdate(DocumentEvent e) {
		int i=0;
		i++;
		System.out.println("插入 更改文本的监听。"+"change text"+i);
	}
}

运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值