【问题标题】:How to fire JSlider change listener?如何触发 JSlider 更改监听器?
【发布时间】:2012-10-17 12:58:00
【问题描述】:

如何以编程方式触发 JSlider 的更改侦听器?

【问题讨论】:

标签: java swing listener jslider changelistener


【解决方案1】:

假设您想通知滑块的侦听器,您可以使用:

    ChangeEvent ce = new ChangeEvent(slider);
    for(ChangeListener cl : slider.getChangeListeners()){
        cl.stateChanged(ce);
    }

除非您扩展类并添加一些新的时髦功能,否则您不需要直接触发更改事件。在这种情况下,fireStateChanged() 方法受到保护,因此您应该有权访问。

【讨论】:

  • 虽然在技术上是正确的,但我真的不愿意投票:如果似乎需要手动触发更改,那么很可能在其他地方确实有问题。
  • @kleopatra:这个scenario 可能是一个合理的用例。
  • @trashgod 可能 - 没有上下文很难说,而且有点不可能:-)
  • @kleopatra:经过反思,这种方法(隐式)短路了ChangeEvent 提供的松散耦合。我会说这是对密切相关的听众的权衡。
【解决方案2】:

slider.setValue(value) 将触发状态更改事件。

【讨论】:

    【解决方案3】:

    看看ChangeListener,例子herehere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      相关资源
      最近更新 更多