在fxml中初始化Spinner控件
Initialize Spinner control in fxml
新 JDK 在这里:
JDK 8u40 release includes new JavaFX UI controls; a spinner control, formatted-text support, and a standard set of alert dialogs.
我想用 fxml 中的 IntegerSpinnerValueFactory 初始化 Spinner。我试过如下:
<Spinner><valueFactory><SpinnerValueFactory ???????? /></valueFactory></Spinner>
新控件的文档很少,考虑到 class 编码中只有 java。
知道如何初始化它吗?
如果你看一下 Spinner
class,你有几个可用的构造函数。
例如:
public Spinner(@NamedArg("min") int min,
@NamedArg("max") int max,
@NamedArg("initialValue") int initialValue) {
this((SpinnerValueFactory<T>)new SpinnerValueFactory.IntegerSpinnerValueFactory(min, max, initialValue));
}
据此answer:
The @NamedArg annotation allows an FXMLLoader to instantiate a class that does not have a zero-argument constructor.
因此您可以使用 min
、max
和 initialValue
作为 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'
的警告...但是您可以构建并 运行 项目。
新 JDK 在这里:
JDK 8u40 release includes new JavaFX UI controls; a spinner control, formatted-text support, and a standard set of alert dialogs.
我想用 fxml 中的 IntegerSpinnerValueFactory 初始化 Spinner。我试过如下:
<Spinner><valueFactory><SpinnerValueFactory ???????? /></valueFactory></Spinner>
新控件的文档很少,考虑到 class 编码中只有 java。
知道如何初始化它吗?
如果你看一下 Spinner
class,你有几个可用的构造函数。
例如:
public Spinner(@NamedArg("min") int min,
@NamedArg("max") int max,
@NamedArg("initialValue") int initialValue) {
this((SpinnerValueFactory<T>)new SpinnerValueFactory.IntegerSpinnerValueFactory(min, max, initialValue));
}
据此answer:
The @NamedArg annotation allows an FXMLLoader to instantiate a class that does not have a zero-argument constructor.
因此您可以使用 min
、max
和 initialValue
作为 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'
的警告...但是您可以构建并 运行 项目。