Vaadin フォームがあり、attachField メソッドをオーバーライドします。ここで、checkBox、textfield、および別の TextField があり、チェックボックスが true の場合にのみ textField を有効にしたいとします。
2 つのテキストフィールドを Group クラスに保存します。
package be.certipost.as2.gui.components.detail.custom;
java.util.HashMap をインポートします。java.util.Map をインポートします。
com.vaadin.ui.Field をインポートします。
パブリック クラス グループ {
private String id;
private Map<String, Field> fields;
public Group(String groupsId){
this.id=groupsId;
fields = new HashMap<String,Field>();
}
public Field findFieldById(String fieldId){
System.out.println(fields.size());
for( Map.Entry<String, Field> f: fields.entrySet()){
if(f.getKey().equals(fieldId)){
return f.getValue();
}
}
return null;
}
public void setEnabled(Boolean enabled){
for( Map.Entry<String, Field> f: fields.entrySet()){
f.getValue().setEnabled(enabled);
}
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void addField(String fieldId, Field field) {
fields.put(fieldId,field);
System.out.println(fields.size());
}
}
今、フォームにリストグループがあります..
チェックボックスについては、クリックするとグループのリストで正しいグループがチェックされ、そのグループで正しいフィールドが見つかると言います。次に、このフィールドを有効/無効に設定します...コンパイルレベルではこれは機能しますが、チェックボックスをクリックすると、フィールドのnullpointerexceptionが発生します。したがって、チェックボックスをクリックした時点で、グループにはフィールドがありません
私は何をすべきか?