在微调器javaFx中使用十进制值

在微调器javaFx中使用十进制值,java,javafx,Java,Javafx,我正在构建一个小应用程序,在这里我需要使用十进制值(双值)进行一些输入。我添加了一些SpinnerValueFactory.DoubleSpinnerValueFactory来定义最小值、最大值和默认的双精度值,但是当我单击微调器的“增量”按钮时,它不会随着十进制值的增加而增加,而是以整数的形式递增 @FXML private Spinner<Double> fixedAciditySpinner; @Override public void initialize

我正在构建一个小应用程序,在这里我需要使用十进制值(双值)进行一些输入。我添加了一些SpinnerValueFactory.DoubleSpinnerValueFactory来定义最小值、最大值和默认的双精度值,但是当我单击微调器的“增量”按钮时,它不会随着十进制值的增加而增加,而是以整数的形式递增

@FXML
    private Spinner<Double> fixedAciditySpinner;

 @Override
    public void initialize(URL url, ResourceBundle rb) {
    this.fixedAciditySpinner.setValueFactory(new SpinnerValueFactory.DoubleSpinnerValueFactory(0.00, 100.00, 0.00));
}
@FXML
私人纺纱机固定酸性纺纱机;
@凌驾
公共void初始化(URL、ResourceBundle rb){
这个.fixedAciditySpinner.setValueFactory(新的SpinnerValueFactory.DoubleSpinnerValueFactory(0.00100.00,0.00));
}

如何使微调器使用十进制值?

通过FXML所要做的就是设置出厂值、最小最大值和amountToStepBy

<Spinner fx:id="spinner" editable="true" >
            <valueFactory>
                <SpinnerValueFactory.DoubleSpinnerValueFactory min="0.0" max="10.0" initialValue="5.0" amountToStepBy="0.1"/>
            </valueFactory>
        </Spinner>

当然,您需要将DoubleSpinnerValueFactory包含到FXML文件中

<?import javafx.scene.control.SpinnerValueFactory.DoubleSpinnerValueFactory?>

以上内容将使您的微调器可以使用双精度,但当您看到值为“5”时,它的表示形式将是int,而不是5.0。


<Spinner fx:id="sp" GridPane.columnIndex="3" GridPane.rowIndex="4" editable="true" 
min="3.2" max="5.0" initialValue="3.2" amountToStepBy=".1"/>

这样做要容易得多

Im使用微调器而不是滑块