提问者:小点点

Javafx控件的哪个事件?


在JavaFX和FXML中为滑块实现事件处理程序时,我无法弄清楚滑块触发的事件类型。我搜索了Javadoc并在谷歌上搜索了它,但最终通过反复试验解决了它:鼠标释放的事件可以跟踪用户何时更改了滑块的值(我的第一个猜测是某种ValueChangeListener或像在摇摆中一样的ChangeListener)。

问:我如何知道哪个事件侦听器/处理程序与哪个控件一起使用?如果API/Javadoc没有说明滑块值的更改最好由鼠标事件处理,那么在哪里查找该信息?


共2个答案

匿名用户

JavaFX用Properties替换了大多数值事件,因为它们更加灵活。因此,当您想跟踪组件的当前值时,最简单的方法是在您的情况下将ChangeListener添加到Slider的value eProperty:

slider.valueProperty().addListener( ( ov, oldValue, newValue ) ->
{
  System.out.println( "OldValue = " + oldValue + " newValue = " + newValue );
} );

有关示例的更详细解释,请参见此处。

匿名用户

您可以将超类事件(即最顶级的Event,而不是像ActionEvent这样的特定事件)过滤器(而不是处理程序)添加到某些父布局(或场景)并观察通过传播的具体事件类型。

另一种选择是简单地阅读源代码:)