gpt4 book ai didi

java - Spinner JavaFX 的 Catch 值

转载 作者:行者123 更新时间:2023-12-01 10:16:52 37 4
gpt4 key购买 nike

我正在尝试获取 Spinner(JavaFX) 的值。但返回null。

来源:

    public class FXMLTeste implements Initializable {
@FXML
private Spinner uni;

@Override
public void initialize(URL url, ResourceBundle rb) {
uni.setEditable(true);
}
@FXML
public void actionButton(){
System.out.println(uni.getValue()); // return NULL
}
}

fxml

<Spinner fx:id="uni" prefHeight="25.0" prefWidth="342.0"></Spinner>

最佳答案

您需要设置 valueFactory 让微调器允许 Spinner的值变为非 null 。这可以通过直接分配属性来完成:

<Spinner fx:id="uni" prefHeight="25.0" prefWidth="342.0">
<valueFactory>
<!-- add factory instance creation here -->
</valueFactory>
</Spinner>

通过使用适当的构造函数

<Spinner fx:id="uni" prefHeight="25.0" prefWidth="342.0" min="1" max="10" initialValue="4" />

或者通过在 initialize 中“手动”执行此操作方法:

SpinnerValueFactory valueFactory = ...
uni.setValueFactory(valueFactory);

您还应该为Spinner指定类型参数。 ,即使它是通配符 ( Spinner<?> ),请参阅 What is a raw type and why shouldn't we use it?

做出有根据的猜测,您可能正在寻找这样的东西:

<fx:define>
<FXCollections fx:factory="observableArrayList" fx:id="unis" />
</fx:define>
<Spinner fx:id="uni" prefHeight="25.0" prefWidth="342.0" items="$unis" />

Controller

@FXML
private Spinner<String> uni;

@FXML
private ObservableList<String> unis;

@Override
public void initialize(URL url, ResourceBundle rb) {
unis.add("Oxford");
unis.add("Harvard");
}

关于java - Spinner JavaFX 的 Catch 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844501/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com