Как связать JProgressbar со свойством класса Бина - PullRequest
2 голосов
/ 09 октября 2011

Кто-нибудь может дать пример кода или ссылку, как привязать JProgressbar к свойству класса бина в приложениях Swing?

1 Ответ

2 голосов
/ 09 октября 2011

Вы можете использовать JGoodies Binding, чтобы привязать индикатор выполнения к вашей модели.Но ваша (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));
...