Я бы порекомендовал использовать инфраструктуру привязки данных JFace: см. Учебник Фогеллы по этому вопросу .
JFace Data Binding - это платформа, которая связывает свойства объектов.
Например, вы должны привязать свойство «firstName» объекта «Person» к текстовому полю в пользовательском интерфейсе. Это связывание будет синхронизировать изменения в модели и пользовательском интерфейсе, например, если пользователь изменит имя в пользовательском интерфейсе, модель будет автоматически обновляется

С:
public class Person implements PropertyChangeListener {
[...]
private String gender;
И
DataBindingContext ctx = new DataBindingContext();
widgetValue = WidgetProperties.selection().observe(marriedButton);
modelValue = BeanProperties.value(Person.class, "married").observe(person);
ctx.bindValue(widgetValue, modelValue);