Spinner 实际上无法解析为 Double
Spinner can't actually not resolve to Double
我已经 copy/paste 从笔记本电脑到另一台笔记本电脑的代码,但我的微调器出了点问题:
所以在我的控制器中我有:
@FXML
private Spinner<Double> widthSpinner;
并且在 fxml 中
<Spinner fx:id="sp2" min="0" max="20"></Spinner>
它今天早上运行正常,但现在出现错误:
java.lang.ClassCastException:java.lang.Integer cannot be cast to java.lang.Double
即使是 System.out.println("__:" + widthSpinner.getValue());
也没有给我错误,所以我显然很失望,因为对于需要值的地方这不是强制转换的问题
初始化 Spinner 的方法有:
public Spinner(double min,
double max,
double initialValue)
或
public Spinner(double min,
double max,
double initialValue,
double amountToStepBy)
或
new Spinner(SpinnerValueFactory.DoubleSpinnerValueFactory)
阅读只需使用 widthSpinner.getValue() 即可获得双倍价值。
Spinner class 将 Integer 和 String 作为其常见类型(可能默认已初始化)。
如果这有帮助,请告诉我。
参考:Spinner class documenation on Oracle website
要修复:只需更改以下值之一:startValue
、minValue
、MaxValue
从 int
到 double
到 .fxml
文件
<Spinner fx:id="sp2" min="0" max="20"></Spinner>
需要变成
<Spinner fx:id="sp2" min="0" max="20.0"></Spinner>
^^
显然是由于我的 jdk 版本中的一个错误,但很容易在代码中修复
我已经 copy/paste 从笔记本电脑到另一台笔记本电脑的代码,但我的微调器出了点问题:
所以在我的控制器中我有:
@FXML
private Spinner<Double> widthSpinner;
并且在 fxml 中
<Spinner fx:id="sp2" min="0" max="20"></Spinner>
它今天早上运行正常,但现在出现错误:
java.lang.ClassCastException:java.lang.Integer cannot be cast to java.lang.Double
即使是 System.out.println("__:" + widthSpinner.getValue());
也没有给我错误,所以我显然很失望,因为对于需要值的地方这不是强制转换的问题
初始化 Spinner 的方法有:
public Spinner(double min,
double max,
double initialValue)
或
public Spinner(double min,
double max,
double initialValue,
double amountToStepBy)
或
new Spinner(SpinnerValueFactory.DoubleSpinnerValueFactory)
阅读只需使用 widthSpinner.getValue() 即可获得双倍价值。
Spinner class 将 Integer 和 String 作为其常见类型(可能默认已初始化)。
如果这有帮助,请告诉我。 参考:Spinner class documenation on Oracle website
要修复:只需更改以下值之一:startValue
、minValue
、MaxValue
从 int
到 double
到 .fxml
文件
<Spinner fx:id="sp2" min="0" max="20"></Spinner>
需要变成
<Spinner fx:id="sp2" min="0" max="20.0"></Spinner>
^^
显然是由于我的 jdk 版本中的一个错误,但很容易在代码中修复