ComboBox показывает пустой список - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь использовать разные объекты в JavaFX и сложить в выпадающий список.Показывает список без элементов.

public class Controller extends Application {

public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setTitle("Hello World");
    primaryStage.setScene(new Scene(root, 300, 275));
    primaryStage.show();

}

public Label label1 = new Label();
public CheckBox cbox1 = new CheckBox();
public ObservableList<String> options = FXCollections.observableArrayList(
         "Option 1",
                "Option 2",
                "Option 3"
        );

public ComboBox comboBox = new ComboBox(options);
......
<ComboBox id="comboBox" fx:id="comboBox" prefWidth="150.0" 
GridPane.columnIndex="1" GridPane.rowIndex="11" />
......

1 Ответ

1 голос
/ 29 июня 2019

Вы не добавляете ComboBox из вашего FXML в ваш Controller.Вместо этого вы создаете совершенно новый ComboBox (который не отображается на вашей сцене).

Вы должны удалить эту строку:

public ComboBox comboBox = new ComboBox(options);

и заменить ее следующим:

@FXML
private ComboBox comboBox;

Тогда это всего лишь вопрос настройки элементов для выпадающего списка:

comboBox.setItems(options);

Почему? Аннотация @FXML сообщает JavaFX, чтоComboBox, на которую вы ссылаетесь в следующей строке, было определено в вашем файле FXML.Это позволяет JavaFX «внедрить» этот объект в ваш контроллер.

Side Примечание: Как правило, не рекомендуется использовать ваш основной класс в качестве класса контроллера (я рекомендую создать отдельный класс контроллера для вашего FXML).Ваш класс контроллера должен также включать метод private void initialize() (аннотированный @FXML).Здесь вы можете установить параметры для элементов управления вашей сцены.Большинство вводных руководств по JavaFX проведут вас через этот процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...