Для JavaFX-приложения использую связку: Сontroller.java, Main.java и scene.fxml. Задача: добавить CheckBox с определенными значениями. В классе Controller.java создаю ObservableList и передаю его созданному ComboBox:
ObservableList<String> test = FXCollections.observableArrayList("one", "two", "three", "etc");
@FXML
ComboBox<String> Spots = new ComboBox<>(test);
В scene.fxml добавлено:
<ComboBox fx:id="Spots" layoutX="99.0" layoutY="111.0" prefHeight="25.0" prefWidth="65.0" promptText="n"></ComboBox>
При запуске выходит пустой список:
Если в каком-нибудь обработчике событий, например у кнопки, прописать:
Spots.setItems(test);
То список значений появляется в созданном ранее CheckBox. Почему список не инициализируется при создании объекта?
PS. Если прописать значения списка непосредственно в scene.fxml, то список работает:
<ComboBox fx:id="Spots" layoutX="99.0" layoutY="111.0" prefHeight="25.0" prefWidth="65.0" promptText="n">
<items>
<FXCollections fx:factory="observableArrayList">
<Integer fx:value="1" />
<Integer fx:value="2" />
<Integer fx:value="3" />
<Integer fx:value="4" />
<Integer fx:value="5" />
<Integer fx:value="6" />
<Integer fx:value="7" />
<Integer fx:value="8" />
<Integer fx:value="9" />
<Integer fx:value="10" />
</FXCollections>
</items>
</ComboBox>
FXML
элементы не нужно инициализировать, это за вас делает FXMLLoader
, иначе вы потеряетя ссылку на объект в сцене; замените
@FXML
ComboBox<String> Spots = new ComboBox<>(test);
на:
@FXML
ComboBox<String> Spots;
@FXML
private void initialize() {
Spots.setItems( test );
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
между таблицами у меня связь один ко многим, использую аннотацию @JoinColumn, насколько понимаю при этой аннотации просто добавляется дополнительный...
Как создать enum с числами? И как сравнивать их между собой?
Помогите решить проблемуНе могу понять, в чем моя ошибка