Javafx控件的哪个事件?

时间:2015-12-18 11:58:31

标签: api javafx event-handling fxml

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

问题:我如何知道哪个事件监听器/处理程序与哪个控件有关?如果API / Javadoc没有声明滑块值更改最好是由鼠标事件处理,那么在哪里查找该信息?

2 个答案:

答案 0 :(得分:1)

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

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

有关示例的更详细说明,请查看here

答案 1 :(得分:0)

你可以将一个超类事件(即最顶级的Event,而不是特定的事件,如ActionEvent)过滤器(不是处理程序)添加到某个父布局(或场景),并观察什么善意的具体事件正在传播。

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