JavaFX Spinner.getValue()
JavaFX Spinner.getValue()
我正在处理 JavaFX 表格。该表单应该采用值并将其添加到数据库中。每当我尝试通过 .getValue
获取值时,它都会产生一个错误
Incompatible Types: Object cannot be converted to Int
这是 FXML 代码:
<Spinner fx:id="spinner" layoutX="494.0" layoutY="528.0" maxWidth="100.0" minWidth="100.0" prefWidth="100.0">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory min="0" max="30" initialValue="20" amountToStepBy="1"/>
</valueFactory>
</Spinner>
Java代码:
Spinner mySpinner=(Spinner) spinner;
int value = mySpinner.getValue;
感谢您的帮助
Just posting the comment as an answer. To resolve this question:
永远不要使用raw types
。改用这样的东西:
Spinner<Integer> mySpinner = (Spinner<Integer>) spinner;
如另一个答案所述,您永远不应该使用原始类型。 Spinner
是一个 generic type: it's defined as Spinner<T>
,其中 T
是一个 类型参数 ,代表 "the type of the value that the spinner holds"。更正式地说,文档说明
T
- The type of all values that can be iterated through in the Spinner
. Common types include Integer
and String
.
使用通用的 class 时,您应该始终指定类型,例如在你的情况下你应该使用
Spinner<Integer>
指代迭代整数的微调器;你不应该只使用 "raw type"
Spinner
因为您已经使用
在 FXML 中定义了微调器
<Spinner fx:id="spinner" ... >
你大概是在将它注入到控制器中。注入时使用参数化类型即可:
public class MyController {
@FXML
private Spinner<Integer> spinner ;
// ...
}
现在编译器确信 spinner
持有 Integer
s 作为值,所以你可以做
int value = spinner.getValue();
另见 Java Generics: List, List<Object>, List<?>
我正在处理 JavaFX 表格。该表单应该采用值并将其添加到数据库中。每当我尝试通过 .getValue
获取值时,它都会产生一个错误
Incompatible Types: Object cannot be converted to Int
这是 FXML 代码:
<Spinner fx:id="spinner" layoutX="494.0" layoutY="528.0" maxWidth="100.0" minWidth="100.0" prefWidth="100.0">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory min="0" max="30" initialValue="20" amountToStepBy="1"/>
</valueFactory>
</Spinner>
Java代码:
Spinner mySpinner=(Spinner) spinner;
int value = mySpinner.getValue;
感谢您的帮助
Just posting the comment as an answer. To resolve this question:
永远不要使用raw types
。改用这样的东西:
Spinner<Integer> mySpinner = (Spinner<Integer>) spinner;
如另一个答案所述,您永远不应该使用原始类型。 Spinner
是一个 generic type: it's defined as Spinner<T>
,其中 T
是一个 类型参数 ,代表 "the type of the value that the spinner holds"。更正式地说,文档说明
T
- The type of all values that can be iterated through in theSpinner
. Common types includeInteger
andString
.
使用通用的 class 时,您应该始终指定类型,例如在你的情况下你应该使用
Spinner<Integer>
指代迭代整数的微调器;你不应该只使用 "raw type"
Spinner
因为您已经使用
在 FXML 中定义了微调器<Spinner fx:id="spinner" ... >
你大概是在将它注入到控制器中。注入时使用参数化类型即可:
public class MyController {
@FXML
private Spinner<Integer> spinner ;
// ...
}
现在编译器确信 spinner
持有 Integer
s 作为值,所以你可以做
int value = spinner.getValue();
另见 Java Generics: List, List<Object>, List<?>