在JavaFX和FXML中为滑块实现事件处理程序时,我无法确定滑块触发的事件类型。我搜索了Javadoc并用谷歌搜索了它,但最终通过反复试验解决了它:鼠标释放事件可以跟踪用户何时更改了滑块的值(我的第一个猜测是某种类型的ValueChangeListener或ChangeListener就像在swing中)
问题:我如何知道哪个事件监听器/处理程序与哪个控件有关?如果API / Javadoc没有声明滑块值更改最好是由鼠标事件处理,那么在哪里查找该信息?
答案 0 :(得分:1)
JavaFX用属性替换了大多数值事件,因为它们更灵活。因此,当您想要跟踪组件的当前值时,最简单的方法是在您的情况下将ChangeListener添加到Slider的valueProperty:
slider.valueProperty().addListener( ( ov, oldValue, newValue ) ->
{
System.out.println( "OldValue = " + oldValue + " newValue = " + newValue );
} );
有关示例的更详细说明,请查看here。
答案 1 :(得分:0)
你可以将一个超类事件(即最顶级的Event
,而不是特定的事件,如ActionEvent
)过滤器(不是处理程序)添加到某个父布局(或场景),并观察什么善意的具体事件正在传播。
另一种选择是简单地阅读源代码:)