0

我有一个基于 JSlider 的自定义组件。它本质上是一样的,只是它有 2 个拇指,我将其命名为 DualSlider。

我需要不时更改滑块的最大值,所以每次我这样做时,我都会调用 updateUI 来反映这一点。

public void updateUI() {
    this.setUI(new DualSliderUI(this));
    this.updateLabelUIs();
}

但是,无论我在使用程序时尝试更改多少次,DualSlider 在尝试使用时的最大值仍然设置为原始值。我可以通过一些 println 语句确认正在使用具有新最大​​值的滑块制作新的 DualSliderUI,但无论出于何种原因,我初始化滑块的原始 DualSliderUI 是正在使用的那个。

当我更新属性时,我还必须确保做哪些其他事情才能避免这种情况?

4

1 回答 1

1

1)我看不出使用的原因,updateUI()这应该做一次,只有当你建立这个时JSlider,永远不要重复

2)你看过BoundedRangeModel也许

于 2012-02-24T07:24:32.667 回答