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