JavaFX: снова показывать текст приглашения после выбора пустого элемента - PullRequest
0 голосов
/ 03 сентября 2018

Я только начал переходить с Swing на JavaFX (навсегда), и до сих пор я неплохо справился! Мне удалось заполнить ComboBox из списка сущностей и добавить пустой элемент в начало списка, например:

supplierSearch = new ComboBox();
    ObservableList<Supplier> suppliers = FXCollections.observableArrayList(supplierService.findAll());
    suppliers.add(0, new Supplier());
    supplierSearch.setItems(suppliers);
    supplierSearch.setPromptText("Recherche Fournisseur");
    supplierSearch.setMaxWidth(Double.MAX_VALUE);
    supplierSearch.getSelectionModel().selectedItemProperty().addListener((observable) -> 
    {
        filterProducts();
    });

Одна вещь, которая меня беспокоит, это то, что текст подсказки никогда не возвращается при выборе пустого элемента, он присутствует только при первоначальном создании ComboBox и сразу после щелчка по элементу (или пустой строке в первой позиции). это никогда не появляется снова. Есть ли способ отобразить текст подсказки при выборе пустого элемента?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Я знаю, что опоздал, но кто-то может прочитать это в поисках информации.

Важно сказать, что, хотя это работает, это не лучшее решение. Я не знаю, для какого типа установлен ваш ComboBox, но я предполагаю, что вы используете его со строкой, поэтому вы можете установить первый элемент на нужный текст.

Проблема здесь в том, что если вы выберете этот элемент списка, вы будете возвращать эту точную строку с помощью getSelecionModel (). GetSelectedItem ()

Но что еще хуже, если вы установите заполнение ComboBox своим собственным объектом, вы не сможете привязать значение ComboBox к вашей модели, используя getSelecionModel (). SelectedItemProperty (), и у вас там будет ошибка.

Как кто-то сказал в комментариях, используйте getSelecionModel (). ClearSelection ().

0 голосов
/ 03 сентября 2018

Ну, я вроде взломал это. Я просто установил имя пустой сущности так же, как и текст подсказки. Поскольку текст подсказки ComboBox отображается точно так же, как и текст выбранного элемента, это прекрасно работает.

...