如何单击javafx滑块

时间:2014-07-29 12:51:48

标签: java javafx slider javafx-2 java-8

我有一个问题。 我正在创建一个audiplayer,几乎一切都已完成,但我有一个小问题。 我可以使用滑块,但我只能滑动它,点击不起作用。 我怎么能解决这个问题,我已经看到了JavaFX的一些解决方案,但是没有使用FXML的javaFX应用程序(我正在使用FXML)。 非常感谢你!

2 个答案:

答案 0 :(得分:2)

Slider有一个方法setOnMouseReleased(EventHandler<? super MouseEvent> value),这意味着你可以轻松添加一个MouseEvent处理程序来点击滑块:

mySlider.setOnMouseReleased((MouseEvent event) -> {
    // do whatever has to be done
});

答案 1 :(得分:0)

这样的事情:

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);
        }
});

如果您有任何注册,这也会导致您的value属性侦听器触发。你可以注册一个这样的:

timeSlider.valueProperty().addListener(new InvalidationListener() {
        public void invalidated(Observable ov) {
            if (timeSlider.isValueChanging()) {
                //do something here
            }
        }
}