Autocomplete mit Ersetzung

Fohnbit

Top Contributor
Hallo,

ich möchte Textfelder Eingaben auf vorgefertigte Texte beschränken und ggf. erweitern.
Jedoch unterliegt jedem Text mehrere mögliche Schreibweisen.

Beispiel:
Jemand tippt ins Textfeld "abme" ... es soll dann darunter eine Liste erscheinen, die alle Vorschläge für "abme" hat. Also:
Abmessung
...

er soll den Vorschlag mit der down oder Mausklick übernehmen.

Aber:
wenn jemand "dim" eintippt, wäre ein möglicher Vorschlag:
Dimension
Dimmen
...

Wenn er Dimension auswählt, soll ebenfalls "Abmessung" in das Feld eingefügt werden.

Meine Liste dahinter wäre demnach:
use = Abmessung
find = Abmessungen, Abmessung, Dimension, Dimensions

Also jedes AutoComplete für Werte bei "find" sollen dann am Ende mit dem einen Wert von "use" ersetzt werden

wenn es keine Übereinstimmung gibt, soll ein Popup erscheinen, damit man den Eingegeben Text als "use" oder "find" anlegen kann. So würde die Liste ständig wachsen.

Ich hoffe ich konnte es verständlich beschreiben.

Es darum, Daten einzugeben, wo die Bezeichnung immer die selbe ist, damit man diese leichter vergleichen kann.

Danke!
 
Zuletzt bearbeitet:

Samofan

Aktives Mitglied
Hallo Fohnbit,

leider kann ich deinem Text nicht entnehmen wie dein aktueller Stand ist. Ich nutze das JFXAutoCompletePopup von JFoenix. Mit diesem Beispielcode kannst Du schonmal eine Liste mit passenden Worten anzeigen lassen, aus der sich dann das passende Wort auswählen lässt:

Java:
JFXAutoCompletePopup<String> autoCompletePopup = new JFXAutoCompletePopup<>();
        autoCompletePopup.getSuggestions().addAll("Hier", "kommen", "Deine", "Worte",
                "rein", "usw.");

        autoCompletePopup.setSelectionHandler(stringJFXAutoCompleteEvent -> {
            deinTextfeld.setText(stringJFXAutoCompleteEvent.getObject());
        });

        TextField editor = deinTextfeld;
        editor.textProperty().addListener(observable -> {
            autoCompletePopup.filter(item -> item.toLowerCase().contains(editor.getText().toLowerCase()));

            if (autoCompletePopup.getFilteredSuggestions().isEmpty()) {
                autoCompletePopup.hide();
            } else {
                autoCompletePopup.show(editor);
            }
        });

Vielleicht hilft Dir das ein bisschen.

Quelle: https://github.com/jfoenixadmin/JFoenix/issues/890#issuecomment-446992943
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben