如何将侦听器附加到 JavaFX 微调器?
我遇到了一个似乎(无论如何,在我看来)JavaFX微调器的奇怪问题,并且无法将任何类型的侦听器附加到它上面。
我习惯于Swing编程,在那里我可以将ChangeListener附加到JSpinner并以这种方式接收事件,但是JavaFX似乎没有这样的东西。
有问题的代码...
IntegerSpinnerValueFactory spinnerValueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(0, Integer.MAX_VALUE);
hullPointsSpinner = new Spinner<Integer>(spinnerValueFactory);
hullPointsSpinner.setEditable(true);
((TextField)hullPointsSpinner.getEditor()).setOnAction(new EventHandler<ActionEvent>() {
public void handle( ActionEvent event )
{
System.out.println("Howdy, folks! Value is " + hullPointsSpinner.getValue() + "!!");
}
});
箭头按钮将增大和减小字段中的值,但对模型中的值没有影响。只有选择字段的内容并按 Enter 键才能实际更新模型中的数据并打印出值。(我知道,按回车键的东西在文档中。
我也意识到我正在使用getEditor将EventHandler放到Spinner的TextField上,但我还没有看到另一种方法来做到这一点。
有没有办法将侦听器挂钩到微调器的按钮?
(哎呀,有没有办法找到这些按钮来连接听众?
我是否从微调器/编辑器接收了错误的类型事件?我可以把某种听众放在微调器ValueFactory上吗?
有没有某种明显的解决方案,我在这里忽略了?
如有必要,我将用JSpinner替换它,但是这个API将具有微调器组件并且使用它的方式如此尴尬,这对我来说似乎很疯狂。
提前致谢。