【问题标题】:How to bind a JProgressbar to a Bean class's property如何将 JProgressbar 绑定到 Bean 类的属性
【发布时间】:2011-10-09 12:12:26
【问题描述】:

任何人都可以给出示例代码或链接如何在 Swing 应用程序中将 JProgressbar 绑定到 bean 类的属性?

【问题讨论】:

  • “类属性”是什么意思?无论如何,在 JProgressbar 中没有什么特别之处 - 以与任何其他组件上的任何其他属性相同的方式执行此操作

标签: java swing desktop-application beans-binding


【解决方案1】:

您可以使用 JGoodies Binding 将进度条绑定到您的模型。但是您的(视图)模型必须触发属性更改事件才能使其正常工作。 http://www.jgoodies.com/downloads/libraries.html我可以在星期一发布示例代码。

示例:

在您的视图模型中:

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));

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2018-12-12
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多