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

时间:2017-09-17 17:30:05

标签: java javafx

我正在构建一个小应用程序,我需要使用十进制值(Double值)获取一些输入。我添加了一些 SpinnerValueFactory.DoubleSpinnerValueFactory 来定义min.max,默认的double值,但是当我单击微调器的增量按钮时它不会随着小数值增加,它会以整数递增。

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

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

2 个答案:

答案 0 :(得分:1)

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

这样做很容易

答案 1 :(得分:0)

通过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?>

以上将使你的Spinner使用双打,但当你有一个像“5”这样的值时,你会看到它的演示文稿将是一个int而不是5.0。