Update autoComplete JavaFx?

8

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:

%Vor%

pushBills-Methode ():

%Vor%

Wie kann ich die alte automatische Vervollständigung entfernen und neue automatische Vervollständigung binden?

    
Menai Ala Eddine 20.08.2017, 04:30
quelle

3 Antworten

2

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%     
MaxKing 01.09.2017, 07:43
quelle
0

Das wird den Trick machen: Statt: TextFields.bindAutoCompletion(textField, list); , versuche das:

%Vor%

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;

    
MaxKing 31.08.2017 10:33
quelle
0

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%     
Cesar Finsther Salas 31.08.2017 19:59
quelle