в Java Я пытаюсь создать графический интерфейс, где я могу динамически добавлять панели с текстовыми полями и тому подобное.Я добавил bean-компонент на панель и привязал весь графический интерфейс к полям bean, я доволен этим.
Теперь я хочу прочитать данные из xml-файла во вновь созданные объекты класса bean-компонента, которыйЯ тоже справился.Проблема в том, что теперь я хочу связать эти новые объекты с панелью графического интерфейса, но только если панель действительно существует, я не показываю данные всех бинов все время.Лучше всего было бы заменить объект bean на панели новым, но он не привязывается, так как привязка установлена для старого объекта.Если бы я просто установил поля, чтобы они соответствовали новому объекту, он не привязывался бы из графического интерфейса к новому объекту.
Я попытался настроить другой набор привязок, чтобы поля новых объектов привязывались к объекту в графическом интерфейсе, который привязан к компонентам графического интерфейса.Код ниже:
public static void bindWTs(WorkTask oldWT, WorkTask newWT){
BindingGroup newBG=new BindingGroup();
for (Field cField : newWT.getClass().getDeclaredFields()) {
String fieldName = cField.getName();
if(fieldName.toUpperCase().startsWith("PROP")){
}
else{
newBG.addBinding(org.jdesktop.beansbinding.Bindings.createAutoBinding(READ_WRITE,oldWT,org.jdesktop.beansbinding.BeanProperty.create(cField.getName().toString()),newWT,org.jdesktop.beansbinding.BeanProperty.create(cField.getName().toString())));
}
}
newBG.bind();
newWT.setMyBindings(newBG);
}
Это, кажется, делает работу, но, кажется, работает очень медленно, и было бы лучше не связывать все, а просто заменить объект bean и повторно привязать GUI.Я пытался сделать это, но не мог заставить это работать.Есть ли лучшие решения для этого, или я иду в совершенно неправильном направлении, чтобы достичь этого?
Спасибо!