はい、確かに、グループ ボックスにフォーカスを当てることでエラーを再現できました (グループ ボックス項目で何を「フォーカス」する必要があるかはわかりませんが、このエラーは発生しないはずです!)! 気軽にチケットを開いて問題を報告してください。何にフォーカスすればよいかわからないフィールド (グループ ボックスやラベルなど) にフォーカスするときに、よくある問題が発生する可能性があります。
私があなたの問題を正しく理解しているかどうかはわかりませんが、(回避策として)requestFocus()
グループボックス(メインボックスなど)でオーバーライドし、フォーカス可能な(そしておそらく特別なタイプの)すべての子フィールドを再帰的に収集することをお勧めします。それらを順番に並べ替えてから、最初に利用可能なものを取得し(利用可能な場合)、それにフォーカスを設定します。そうでなければ何もしません。
そのようなものかもしれません:
@Override
public void requestFocus() {
final Map<Double, IFormField> orderedFields = new TreeMap<>();
getBoxWithDesiredFocusableFields().visitFields(new IFormFieldVisitor() {
@Override
public boolean visitField(IFormField field, int level, int fieldIndex) {
if (field.isFocusable() && field....some specific conditions) {
orderedFields.put(field.getOrder(), field);
}
return true;
}
}, 0);
if (orderedFields.keySet().iterator().hasNext()) {
// Focusable fields available -> get first focusable field
IFormField firstFocusableField = orderedFields.get(orderedFields.keySet().iterator().next());
if (firstFocusableField != null) {
firstFocusableField.getForm().requestFocus(firstFocusableField);
}
}
}
よろしくお願いします、
マティアス