【发布时间】:2017-05-19 15:21:29
【问题描述】:
我的应用程序有一点 GUI 问题:在我几周前创建的一个表单中,有三个 AutoCompleteTextfield。如果第一个里面没有文本,其他的都被禁用。
它就像一个魅力,但也有三个 StringPickers,用于选择诸如用户,类型之类的东西......当第一个 ACTF 已经填充,因此另外两个启用时,如果我选择一个字符串从任何一个 Picker 中,这两个 ACTF 都被禁用了!我真的不知道他们为什么会被禁用,所以如果有人有想法,我将不胜感激:)
这是第一个 ACTF 的覆盖代码:
final DefaultListModel<String> optPart = new DefaultListModel<>();
actfPart = new AutoCompleteTextField(optPart){
@Override
protected boolean filter(String text) {
if(text.length() == 0) {
optPart.removeAll();
actfContact.setEnabled(false);
actfContact.setHint(language.get("ui.mobile.newtask.hint.contact.nopartner"));
actfProj.setEnabled(false);
actfProj.setHint(language.get("ui.mobile.newtask.hint.project.nopartner"));
return true;
}
String[] l = searchPartner(text);
if(l == null || l.length == 0) {
actfContact.setEnabled(false);
actfContact.setHint(language.get("ui.mobile.newtask.hint.contact.nopartner"));
actfProj.setEnabled(false);
actfProj.setHint(language.get("ui.mobile.newtask.hint.project.nopartner"));
return false;
}
actfContact.setEnabled(true);
actfContact.setHint(language.get("ui.mobile.newtask.hint.contact"));
actfProj.setEnabled(true);
actfProj.setHint(language.get("ui.mobile.newtask.hint.project"));
optPart.removeAll();
for(String s : l) {
optPart.addItem(s);
}
return true;
}
private String[] searchPartner(String text)
{
Partner[] parts = RESTeCust1.searchSomePartners(0, 30, text);
String[] strs = new String[parts.length];
int i = 0;
for (Partner part : parts) {
strs[i] = part.getLabel() + " REF: " + part.getReference();
i++;
}
return strs;
}
};
调用此代码之前初始化其他ACTF和字符串Pickers。
【问题讨论】:
标签: codenameone