#java #swing #desktop-application #beans-binding
#java #swing #desktop-приложение #beans-привязка
Вопрос:
Любой может дать пример кода или ссылку как привязать JProgressBar к свойству класса bean в приложениях Swing?
Комментарии:
1. что вы подразумеваете под «свойством класса»? В любом случае, ничего особенного в JProgressBar — сделайте это так же, как и с любым другим свойством любого другого компонента
Ответ №1:
Вы можете использовать привязку JGoodies для привязки индикатора выполнения к вашей модели. Но ваша (view-) модель должна запускать события изменения свойств, чтобы это работало. http://www.jgoodies.com/downloads/libraries.html Я могу опубликовать пример кода в понедельник.
Пример:
В вашей ViewModel:
private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private int progress;
public void addPropertyChangeListener(PropertyChangeListener listener)
{
changeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
changeSupport.removePropertyChangeListener(listener);
}
public int getProgress()
{
return progress;
}
public static final String PROPERTY_PROGRESS = "progress";
public void setProgress(int progress)
{
int old = this.progress;
this.progress = progress;
changeSupport.firePropertyChange(PROPERTY_PROGRESS, old, progress);
}
На ваш взгляд:
BeanAdapter<ViewModel> beanAdapter = new BeanAdapter<ViewModel>(viewModel, true);
Bindings.bind(progressBar, "value", beanAdapter.getValueModel(ViewModel.PROPERTY_PROGRESS));