我遇到了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键才能真正更新模型中的数据并打印出该值。(我知道,按Enter键是在文档中。)
我还意识到,我已经使用getEditor将EventHandler放置在Spinner的TextField上,但是我还没有看到另一种方式来做到这一点。
有没有一种方法可以将收听者吸引到微调按钮上?
(哎呀,有没有办法获得那些按钮来附加一个听众?)
我是否从微调器/编辑器接收到错误的类型事件?我可以在spinnerValueFactory上放置某种侦听器吗?
我在这里有什么明显的解决方案吗?
如有必要,我将其替换为JSpinner,但对我而言,这个API会有一个Spinner组件以及如此尴尬的使用方式,似乎让我感到疯狂。
提前致谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句