首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX Spinner.getValue()

JavaFX Spinner.getValue()
EN

Stack Overflow用户
提问于 2017-11-03 08:59:42
回答 2查看 4.9K关注 0票数 1

我正在处理一个JavaFX表单。表单应该取值并将其添加到数据库中。每当我试图通过.getValue获取值时,它就会创建一个错误

代码语言:javascript
复制
Incompatible Types: Object cannot be converted to Int

以下是FXML代码:

代码语言:javascript
复制
<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代码:

代码语言:javascript
复制
 Spinner mySpinner=(Spinner) spinner;
        int value = mySpinner.getValue;

谢谢你的帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-03 10:38:15

只是把这条评论作为回答。为解决这一问题:

从不使用raw types。用这样的方法代替:

代码语言:javascript
复制
Spinner<Integer> mySpinner = (Spinner<Integer>) spinner; 
票数 2
EN

Stack Overflow用户

发布于 2017-11-03 13:03:46

正如另一个答案所述,您不应该使用原始类型。Spinner是一个属型:它被定义为Spinner,其中T是一个类型参数,表示“旋转器持有的值的类型”。更正式地说,文档声明

T -可以在Spinner中迭代的所有值的类型。常见类型包括IntegerString

当使用泛型类时,应该始终指定类型,例如,在您的情况下,应该使用

代码语言:javascript
复制
Spinner<Integer>

引用遍历整数的旋转器;您不应该只使用“原始类型”。

代码语言:javascript
复制
Spinner

因为您已经在FXML中定义了自旋器

代码语言:javascript
复制
<Spinner fx:id="spinner" ... >

你大概是在把它注入控制器。在注入参数化类型时,只需使用:

代码语言:javascript
复制
public class MyController {

    @FXML
    private Spinner<Integer> spinner ;

    // ...

}

现在,编译器确信spinnerInteger作为值,因此您只需执行以下操作

代码语言:javascript
复制
int value = spinner.getValue();

还请参见, List

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47091784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档