如何将侦听器附加到JavaFX微调器?

BozemanPhil:

我遇到了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组件以及如此尴尬的使用方式,似乎让我感到疯狂。

提前致谢。

James_D:

以下似乎对我来说很好:

hullPointsSpinner.valueProperty().addListener((obs, oldValue, newValue) -> 
    System.out.println("New value: "+newValue));

或者你可以做

spinnerValueFactory.valueProperty().addListener(...);

与上面的监听器相同。

您应该注意此错误此错误已在1.8.0u60中修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将侦听器附加到单选按钮

如何将侦听器附加到克隆的元素?

将侦听器附加到 scrollController

如何将onclick侦听器附加到Android Studio的导航抽屉活动中?

如何将侦听器附加到在密钥到期时被调用的MemoryCache?

如何将永久侦听器附加到Firestore查询?

如何将拖放事件侦听器附加到React组件

如何将侦听器附加到 Django 管理中的日期选择?

如何将点击侦听器附加到DT和Shiny中的数据表?

JavaFx Tableview如何将侦听器添加到复选框列

如何将侦听器添加到表?

如何将一个或多个变量附加到一个事件侦听器?

如何将onClick侦听器附加到应用程序小部件上的listview项

如何将事件侦听器附加到Dojo工具箱中动态添加的窗口小部件内容

JavaFX将事件侦听器附加到颜色为黑色的圆圈

将 evt 侦听器附加到动态创建的类

将异步侦听器附加到单击事件

将事件侦听器附加到UWP中的MotionAnimation

将侦听器附加到多个子元素

将DOMContentLoaded侦听器附加到动态创建的窗口

将事件侦听器附加到FOR循环内的对象

将侦听器附加到android视图的某些部分

Firebase将侦听器附加到Query对象

如何/何时将事件侦听器附加到d3.js中?

如何使用事件委托而不是将事件侦听器分别附加到每个项目?

JavaFX:如何将侦听器设置为TabPane标头的onClick事件

JavaFX:如何将侦听器设置为TabPane标头的onClick事件

如何将事件侦听器添加到Redux表单

如何将事件侦听器添加到动态创建的HTML列表元素?