Problem wartości rozliczeniowej Combobox
Natknąłem się na problem z Comboboxami w javafx2.2. Oto scenariusz:
Użytkownicy klikają przycisk „edytuj plik”.Kolejne okienko stanie się widoczne (za pomocą metody setVisible).To okienko zawiera 6 comboboxów. Trzy z nich mają naprawione elementy: cboReport, cboSales, cboSend. Trzy z nich pobierają dane z db (ObservableList) i zapełniają się, gdy okienko staje się widoczne: cboFile, cboCustomer, cboVet
Użytkownik wybiera numer pliku z pliku cboFile. Pozostałe comboboxy są ustawione z poprawnymi wartościami.Użytkownik naciska przycisk Zapisz, plik zostanie zapisany zgodnie z przeznaczeniem.Następnie użytkownik naciska przycisk zamykania.Po zamknięciu okna dane w okienku są resetowane za pomocą metody resetGUI_editFilePane (). Istnieją linie takie jak:
...
cboReport.getSelectionModel().clearSelection();
cboSales.getSelectionModel().clearSelection();
cboSend.getSelectionModel().clearSelection();
cboFile.getSelectionModel().clearSelection();
cboCustomer.getSelectionModel().clearSelection();
cboVet.getSelectionModel().clearSelection();
cboFile.getItems().clear();
cboCustomer.getItems().clear();
cboVet.getItems.clear();
...
Gdy użytkownik ponownie otworzy okienko, naciskając przycisk „editFile”, zauważam, że tylko comboboxy „fixed item” usunęły zaznaczenie, dynamicznie wypełnione comboboxy pokazują ostatni wybrany element, chociaż wartość z samego wyboru jestnull
. Wydaje mi się, że to błąd graficzny, czy robię coś złego?
Czy jest jakiś sposób na rozwiązanie tego problemu lub jaka jest najlepsza metoda resetowania combobox?
EDYCJA 2014/08/27:
Oficjalnie nie jest to błąd (clearSelection () nie usuwa wartości):
https://bugs.openjdk.java.net/browse/JDK-8097244
Oficjalne „obejście” polega na usunięciu wartości ComboBox po usunięciu zaznaczenia.
cb.getSelectionModel().clearSelection();
// Clear value of ComboBox because clearSelection() does not do it
cb.setValue(null);