【发布时间】:2011-05-24 01:00:04
【问题描述】:
我有一个文本字段和一个搜索按钮。如果用户准确输入 13 位数字(条形码),那么我想自动触发搜索。
我在文本字段上有一个 DocumentListener,并且正在处理 insertUpdate 方法以确定已输入 13 位数字。那时我可以直接调用搜索代码(它确实有效),但是虽然输入了第 13 个字符,但在搜索完成之前它实际上并没有显示在屏幕上。
我更愿意触发搜索按钮并尝试了两种方法:
DocumentListener dlBarcode = new DocumentAdaptor() {
public void insertUpdate(DocumentEvent e) {
String value = jtBarcode.getText();
if (isBarcode(value)) {
ActionEvent ae = new ActionEvent((Object)jbSearch,
ActionEvent.ACTION_PERFORMED, "");
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(ae);
}
}
};
第二个是使用:
jbSearch.dispatch(ae);
这两种方法似乎都不会导致 jbSearch 上的 ActionListener 被触发。你能建议我做错了什么吗?
【问题讨论】: