JTextField 新增DocumentListener監聽注意事項
阿新 • • 發佈:2019-01-23
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();