遇到的问题:
之前给JTextField()添加了一个回车监控,用到了addKeyListener(),这是对按键的监控。想再给其添加一个文本变化实时监控,就想到了再通过判断是否有按键来进行监控,但这带来了一个问题,监听到的文本不会实时变化,总是再下一次操作时才会响应这一次的文本。一开始以为是元素没有更新,但更新后还是出现这样的问题。后来想到是因为按键响应只能监测到按键之前的文本。所以就改变策略,对文本框中的文本变化进行监测。
代码:
//对文本变化的监控
wordSearchTextField.getDocument().addDocumentListener(new DocumentListener() {
@Override
//该方法可以跟踪文本框中移除的内容,例如:在文本框中点击Backspace
public void removeUpdate(DocumentEvent e) {
System.out.println("按下一键1");
do_Changed(e);
}
@Override
//该方法可以跟踪文本框中输入的内容
public void insertUpdate(DocumentEvent e) {
System.out.println("按下一键2");
do_Changed(e);
}
@Override
//该方法可以跟踪当文本框中已存在的内容改变时,获取相应的值
//一直没有监控到
public void changedUpdate(DocumentEvent e) {
System.out.println("按下一键3");
do_Changed(e);
}
});
//对按键的监控
wordSearchTextField.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {