JTextField 添加DocumentListener监听注意事项

jTextField.getDocument().addDocumentListener(new   DocumentListener(){

    ......

});

jTextField添加一个DocumentListener监听时,如果jTextField上面的字符改变(如添加一个字符或插入删除一个字符),都会触发该事件。

场景:把一个光标放在jTextField上,然后用条形码枪扫入条形码,然后对条形码进行解析,解析完后清空jTextField,以便继续扫条码。

如果在DocumentListener事件中就讲jTextField清空的话会报错,原因是,当DocumentListener触发时,会锁住jTextField,在释放之前又想把jTextField清空时由于jTextField被锁住,获取不到而报错,可在线程运行完后进行清空:

 

 

........//DocumentListener事件监听处理

EventQueue.invokeLater(new Runnable() {
            public void run() {
                jTextField.setText("");
            }
        });
        jTextField.requestFocus();

你可能感兴趣的:(swing)