小编Boz*_*hil的帖子

如何将侦听器附加到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() + "!!"); 
        }
    });
Run Code Online (Sandbox Code Playgroud)

箭头按钮将增加和减少字段中的值,但不会影响模型中的值.仅选择字段的内容并按Enter将实际更新模型中的数据并打印出值.(我知道,紧迫的输入内容在文档中.)

我也意识到我正在使用getEditor将EventHandler放到Spinner的TextField上,但我还没有看到另一种方法.

有没有办法将侦听器挂钩到微调器的按钮?
(哎呀,有没有办法让这些按钮附加一个听众?)

我是否从微调器/编辑器接收到错误的类型事件?我可以在spinnerValueFactory上放一些监听器吗?
我在这里有一些明显的解决方案吗?

如果有必要的话,我会用JSpinner替换它,但是我觉得这个API会有一个微调器组件以及如此笨拙的使用方式.

提前致谢.

java swing javafx

10
推荐指数
1
解决办法
7034
查看次数

标签 统计

java ×1

javafx ×1

swing ×1