Java JTextField文本框实时监控

Posted 一身千寻瀑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java JTextField文本框实时监控相关的知识,希望对你有一定的参考价值。

最近在做课程设计,有遇到一个想法,就是在JTextField文本框输入数据的时候实时判断这个数据在数据库中能不能找到对应的记录。

如果有显示在屏幕上,没有的话不显示信息。

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

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

以下列出代码举例。

textField_1.getDocument().addDocumentListener (new DocumentListener() 

	@Override
	public void insertUpdate(DocumentEvent e) 
		// TODO Auto-generated method stub
							
		ResultSet rs = new DBOperation().dbope("select 类型 from 利率单 where 编号='"+textField_1.getText().trim()+"'");
		try 
								
			if(rs.next()) 								
				textArea_1_show.setText(rs.getString(1));
			
			else 
				textArea_1_show.setText("");
			
								
		 catch (SQLException e1) 
			// TODO Auto-generated catch block
			//e1.printStackTrace();
			textArea_1_show.setText("编号有误");
		
							
	

	@Override
	public void removeUpdate(DocumentEvent e) 
	// TODO Auto-generated method stub
							
		ResultSet rs = new DBOperation().dbope("select 类型 from 利率单 where 编号='"+textField_1.getText().trim()+"'");
		try 
								
			if(rs.next()) 									
				textArea_1_show.setText(rs.getString(1));
			
			else 
				textArea_1_show.setText("");
			
								
		 catch (SQLException e1) 
			// TODO Auto-generated catch block
			//e1.printStackTrace();
			textArea_1_show.setText("编号有误");
		
							
	

	@Override
	public void changedUpdate(DocumentEvent e) 
		// TODO Auto-generated method stub
		
		ResultSet rs = new DBOperation().dbope("select 类型 from 利率单 where 编号='"+textField_1.getText().trim()+"'"); //数据库连接,SQL语句实参传入形参str执行dbope(String str)方法.
		try 
								
			if(rs.next()) 									
				textArea_1_show.setText(rs.getString(1));
			
			else 
				textArea_1_show.setText("");
			
								
		 catch (SQLException e1) 
			// TODO Auto-generated catch block
			//e1.printStackTrace();
			textArea_1_show.setText("编号有误");
		
							
	
						
); 

以上代码实现实时监控(JTextField)textField_1中的文本,连接数据库查询是否存在该文本输入的数据作为编号在利率单中所对应的类型。若存在该类型则在下面的JTextArea中输出,否则显示为空。


运行结果如上。Eclipse-Java Mars、JDK1.8实测通过。


以上是关于Java JTextField文本框实时监控的主要内容,如果未能解决你的问题,请参考以下文章

Java 中 JTextArea 和 JTextField 的有啥区别?

java中如何实现在jtextfield中输入多行文字

java如何获取输入框内容并赋值

java 如何设置jTextField文本框只能输入数字?

文本组件

文本框控件JTextField和JTextArea的使用