Ich arbeite gerade an einem JavaFX-Projekt. Ich benutze Automplete TextField von ControlFx .Jedes Mal ich füge neue Zeilen in der Datenbanktabelle hinzu, es sollte Autocomplete aktualisieren, ich tat dies, aber mein Problem zeigt doppeltes Kontextmenü , wir können doppelte Autocomplets sagen, weil ich Methoden anrufe, die jedes neue Hinzufügen automatisch vervollständigen Elemente in der Tabelle.
Wenn ich auf einen Tab editBill
klicke, rufe ich diese Methode auf:
pushBills-Methode ():
%Vor%Wie kann ich die alte automatische Vervollständigung entfernen und neue automatische Vervollständigung binden?
Nur in jedem Fall, wenn Sie die Instanz des AutoCompletionTextFieldBinding-Objekts behalten müssen und somit Folgendes vermeiden:
%Vor%, was die Instanz ändern wird, könnten wir ein wenig tiefer gehen und dies verwenden:
%Vor%Also, durch SuggestionProvider haben wir die Autovervollständigungswerte "aktualisiert". Um eine Verdoppelung des Vorschlagsmenüs zu vermeiden, verwenden Sie es nicht erneut (zum zweiten Mal):
%Vor% Das wird den Trick machen:
Statt: TextFields.bindAutoCompletion(textField, list);
, versuche das:
Erstellen Sie dann eine Bindung zwischen Ihrem textField und der Liste durch:
%Vor%So werden alle Änderungen, einschließlich des Entfernens aus der Liste, in der autoCompletion des textFields widergespiegelt; Und Sie werden dynamische Filterung von Vorschlägen haben, die in Pop-ups angezeigt werden, wenn Benutzer Text in textField eingeben;
Ich hatte vor einiger Zeit dasselbe Problem wie @MaxKing, aber es hat nicht funktioniert. Ich habe es geschafft, es zu lösen, obwohl ich nicht denke, dass es der richtige Weg ist.
// Entsorgen Sie die alte Bindung und erstellen Sie eine neue Bindung neu
autoCompleteBinding.dispose ();
autoCompleteBinding = TextFields.bindingAutoCompletion (TextField, Liste);
versuche das:
%Vor%Tags und Links binding autocomplete javafx-8 controlsfx