在fxml中初始化Spinner控件

时间:2015-03-04 20:06:47

标签: java javafx-8 fxml

新JDK就在这里:

  

JDK 8u40版本包括新的JavaFX UI控件;一个微调控件,格式化文本支持和一组标准的警告对话框。

我想在fxml中使用IntegerSpinnerValueFactory初始化Spinner。我尝试了以下内容:

<Spinner><valueFactory><SpinnerValueFactory ???????? /></valueFactory></Spinner>

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

有关如何初始化的想法吗?

1 个答案:

答案 0 :(得分:5)

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

例如:

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

根据answer

  

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

因此您可以使用minmaxinitialValue作为FXML文件中Spinner的参数:

<Spinner fx:id="spinner" min="0" max="100" initialValue="3" >
      <editable>true</editable>
</Spinner>

请注意,您的IDE可能会抱怨Class javafx.scene.control.Spinner doesn't support property 'min'的警告...但您可以构建并运行该项目。