2017-12-11 2 views
0

Ich erstelle gerade ein Tool, um Berichte für verschiedene Vorfälle zu erstellen.JavaFX - Entfernen des ausgewählten Elements aus anderen Comboboxen

In einem ersten Schritt wählt der Benutzer jede Person, die Teil des Anrufs war (wir haben eine Besatzung von 26 Personen). Im nächsten Schritt wird jede ausgewählte Person in 6 verschiedene Comboboxen geschrieben, so dass der Benutzer den Fahrer und den Kommandanten jedes Fahrzeugs auswählen kann (3 Fahrzeuge - Kommandant und Fahrer auf jedem Fahrzeug, also 6 Comboboxen).

Mein Problem ist: Ich muss verhindern, dass die gleiche Person wie Fahrer auf jedes Fahrzeug oder als Fahrer Kommandant und zur gleichen Zeit ausgewählt ist. Also habe ich versucht, die ausgewählte Person aus jedem anderen Combobox über einen Change zu entfernen:

(ein Change für jeden Combobox, hier ein Beispiel)

inputDriverTruck42.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { 
     @Override 
     public void changed(ObservableValue ov, Object t, Object t1) { 
      String toRemove = inputDriverTruck42.getSelectionModel().getSelectedItem(); 
      inputDriverCar19.getItems().remove(toRemove); 
      inputDriverTruck33.getItems().remove(toRemove); 
      inputCommanderCar19.getItems().remove(toRemove); 
      inputCommanderTruck42.getItems().remove(toRemove); 
      inputCommanderTruck33.getItems().remove(toRemove); 
     } 

}); 

Das funktioniert gut, so weit, aber wenn der Benutzer ändert seine Auswahl Für die erste Combobox ist der zuvor entfernte Artikel offensichtlich in jeder anderen Combobox verschwunden. Auch wenn der Benutzer jede Person in der ersten Combobox nacheinander auswählt, wird jede andere Combobox nach einer Weile leer sein.

Also muss ich irgendwie die Boxen basierend auf dem ausgewählten Element jeder Combobox nachfüllen, ohne das aktuell ausgewählte Element zu verlieren oder das ausgewählte Element wieder in die Liste aufzunehmen.

Jede Hilfe wird geschätzt! Danke im Voraus.

Antwort

-1

Welche JDK-Version verwenden Sie? Hast du die neuesten JDKs eingecheckt? Ich würde vorschlagen, dass Sie Ihr Problem auf JDK 8u151, JDK 9 überprüfen.

Verwandte Themen