在fxml中初始化Spinner控件

Ari*_*ado 3 java fxml javafx-8

新的JDK在这里:

JDK 8u40版本包含新的JavaFX UI控件;微调控件,带格式文本的支持以及一组标准的警报对话框。

我想用fxml中的IntegerSpinnerValueFactory初始化Spinner。我尝试如下所示:

<Spinner><valueFactory><SpinnerValueFactory ???????? /></valueFactory></Spinner>
Run Code Online (Sandbox Code Playgroud)

关于新控件的文档很少,并且考虑到在类编码中只有java。

关于如何初始化它的任何想法?

Jos*_*eda 6

如果您查看Spinner该类,则可以使用几个构造函数。

例如:

public Spinner(@NamedArg("min") int min,
               @NamedArg("max") int max,
               @NamedArg("initialValue") int initialValue) {
    this((SpinnerValueFactory<T>)new SpinnerValueFactory.IntegerSpinnerValueFactory(min, max, initialValue));
}
Run Code Online (Sandbox Code Playgroud)

根据这个答案

@NamedArg批注允许FXMLLoader实例化没有零参数构造函数的类。

所以你可以使用minmax并且initialValue作为参数Spinner上的FXML文件:

<Spinner fx:id="spinner" min="0" max="100" initialValue="3" >
      <editable>true</editable>
</Spinner>
Run Code Online (Sandbox Code Playgroud)

请注意,您的IDE可能会发出警告,提示Class javafx.scene.control.Spinner doesn't support property 'min'您有关...的问题,但是您可以构建并运行该项目。