java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

java awt窗口文本框内容变化监控

最近搞的超级编辑器,发现需要监测文本框内容变化,即监控用户输入。不过发现简单的addKeyListener无法监测用户输入了中文,输入英文或者空格就可以。

发现监测awt的文本框变化,还得用addInputMethodListener。

据资料显示Jtextpane和JText方法名称可能有所差别。

package com.javaer.examples.awt;

import java.awt.Dimension;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;

public class TextListen extends JFrame {
	JTextPane textPane;
	public TextListen(){
		textPane = new JTextPane();
		textPane.setBounds(0, 0, 300, 300);
		textPane.addKeyListener(new KeyAdapter(){
			 public void keyPressed(KeyEvent e) {
				   System.out.println(textPane.getText());
					   if(e.getKeyCode()==32){
				             //按到特别的键,给特别的处理。
					   }
				   }
			 
		});
		textPane.addInputMethodListener(new InputMethodListener(){

			@Override
			public void caretPositionChanged(InputMethodEvent arg0) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void inputMethodTextChanged(InputMethodEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("文本变化?");
			}});
		
		
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  
		setSize(new Dimension(500,500));  
		this.setVisible(true);
		this.add(textPane);
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TextListen tl = new TextListen();
	}

}


This entry was posted in JAVA. Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/java-awt-jtextpane-input-change/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply