Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何单击javafx滑块_Java_Javafx_Slider_Javafx 2_Java 8 - Fatal编程技术网

如何单击javafx滑块

如何单击javafx滑块,java,javafx,slider,javafx-2,java-8,Java,Javafx,Slider,Javafx 2,Java 8,我有个问题。 我正在创建一个audiplayer,几乎所有的事情都完成了,但是我有一个小问题。 我可以使用滑块,但我只能滑动它,单击不起作用。 如何解决这个问题,我见过一些针对JavaFX的解决方案,但没有针对使用FXML的JavaFX应用程序(我正在使用FXML)。 多谢各位 Slider有一个方法setOnMouseReleased(EventHandlerSlider有一个方法setOnMouseReleased(EventHandler类似以下内容: timeSlider.setOnMo

我有个问题。 我正在创建一个audiplayer,几乎所有的事情都完成了,但是我有一个小问题。 我可以使用滑块,但我只能滑动它,单击不起作用。 如何解决这个问题,我见过一些针对JavaFX的解决方案,但没有针对使用FXML的JavaFX应用程序(我正在使用FXML)。
多谢各位

Slider有一个方法
setOnMouseReleased(EventHandlerSlider有一个方法
setOnMouseReleased(EventHandler类似以下内容:

timeSlider.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            timeSlider.setValueChanging(true);
            double value = (event.getX()/timeSlider.getWidth())*timeSlider.getMax();
            timeSlider.setValue(value);
            timeSlider.setValueChanging(false);
        }
});
timeSlider.valueProperty().addListener(new InvalidationListener() {
        public void invalidated(Observable ov) {
            if (timeSlider.isValueChanging()) {
                //do something here
            }
        }
}
大概是这样的:

timeSlider.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            timeSlider.setValueChanging(true);
            double value = (event.getX()/timeSlider.getWidth())*timeSlider.getMax();
            timeSlider.setValue(value);
            timeSlider.setValueChanging(false);
        }
});
timeSlider.valueProperty().addListener(new InvalidationListener() {
        public void invalidated(Observable ov) {
            if (timeSlider.isValueChanging()) {
                //do something here
            }
        }
}

“我见过一些针对JavaFX的解决方案,但不适用于使用FXML的JavaFX应用程序(我正在使用FXML)。”为什么不能在FXML中使用相同的解决方案?FXML毕竟只是创建场景图的另一种方法。就像他们创建一个新类并扩展Slider并将其添加到场景中一样。你也可以在FXML中使用自定义控件。“我见过一些针对JavaFX的解决方案,但不适用于使用FXML的JavaFX应用程序。”(我正在使用FXML)。“为什么不可能对FXML使用相同的解决方案?FXML毕竟只是创建场景图的另一种方法。就像他们创建一个新类并扩展滑块,然后将其添加到场景中一样。您也可以在FXML中使用自定义控件。