1. 程式人生 > >JTextField 新增DocumentListener監聽注意事項

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();