当setOrientation
设置为Orientation.HORIZONTAL
时,滑块的移动非常平滑,但当setOrientation
设置为Orientation.VERTICAL
时,移动是滞后的.
以下是最低限度的复制:
package org.example;
import javafx.application.Application;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.controlsfx.control.RangeSlider;
public class App extends Application {
@Override
public void start(Stage stage) {
RangeSlider rangeSliderVertical = new RangeSlider();
rangeSliderVertical.setOrientation(Orientation.VERTICAL);
rangeSliderVertical.setMinHeight(500);
rangeSliderVertical.setMax(100);
rangeSliderVertical.setMin(0);
rangeSliderVertical.setHighValue(100);
rangeSliderVertical.setLowValue(0);
RangeSlider rangeSliderHorizontal = new RangeSlider();
rangeSliderHorizontal.setMinWidth(500);
rangeSliderHorizontal.setMax(100);
rangeSliderHorizontal.setMin(0);
rangeSliderHorizontal.setHighValue(100);
rangeSliderHorizontal.setLowValue(0);
rangeSliderHorizontal.setOrientation(Orientation.HORIZONTAL);
FlowPane vBoxWithSliders = new FlowPane();
VBox.setVgrow(vBoxWithSliders, Priority.ALWAYS);
HBox.setHgrow(vBoxWithSliders, Priority.ALWAYS);
vBoxWithSliders.setAlignment(Pos.CENTER);
vBoxWithSliders.getChildren().addAll(rangeSliderVertical, rangeSliderHorizontal);
var scene = new Scene(vBoxWithSliders, 600, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
当RangeSlider垂直时,如何实现流畅的移动有什么建议吗?