Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich die Funktion zur automatischen Vervollständigung in einem JTextfield mithilfe einer JList in Java implementieren?

Mary-Kate Olsen
Freigeben: 2024-11-17 11:56:02
Original
845 Leute haben es durchsucht

How can I implement auto-complete functionality in a JTextfield using a JList in Java?

AutoComplete-Vorschlag für JTextfield mit JList

In Java ist die Implementierung einer Autovervollständigungsfunktion für ein JTextfield durch die Verwendung einer JList zur Anzeige möglich Vorschlagsoptionen, während der Benutzer Zeichen eingibt. So können Sie vorgehen:

  1. Sortieren Sie Ihr Array: Für eine bessere Leistung wird empfohlen, die Liste der Vorschlagszeichenfolgen zu sortieren, bevor Sie sie verwenden.
  2. Optionale Klasseninstanziierung: Im bereitgestellten Beispiel werden zwei Klassen verwendet: Java2sAutoTextField und Java2sAutoComboBox. Diese Klassen übernehmen die Funktion zur automatischen Vervollständigung.
  3. Anfangswert:Das Festlegen eines Anfangswerts für das JTextfield verbessert die Benutzererfahrung.

Beispielausgabe:

[Bild von Vorschlägen zur automatischen Vervollständigung, die in einem JTextfield unter der Eingabe angezeigt werden Feld]

Beispielcode:

import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;

public class AutoCompleteTextField {

    private JFrame frame;
    private ArrayList<String> listSomeString = new ArrayList<>();
    private Java2sAutoTextField someTextField = new Java2sAutoTextField(listSomeString);
    private ArrayList<String> listSomeAnotherString = new ArrayList<>();
    private Java2sAutoComboBox someComboBox = new Java2sAutoComboBox(listSomeAnotherString);

    public AutoCompleteTextField() {
        // Populate suggestion lists
        listSomeString.add("-");
        listSomeString.add("Snowboarding");
        listSomeString.add("Rowing");
        listSomeString.add("Knitting");
        listSomeString.add("Speed reading");
        listSomeString.add("Pool");
        listSomeString.add("None of the above");

        listSomeAnotherString.add("-");
        listSomeAnotherString.add("XxxZxx Snowboarding");
        listSomeAnotherString.add("AaaBbb Rowing");
        listSomeAnotherString.add("CccDdd Knitting");
        listSomeAnotherString.add("Eee Fff Speed reading");
        listSomeAnotherString.add("Eee Fff Pool");
        listSomeAnotherString.add("Eee Fff None of the above");

        // Configure JTextfield
        someTextField.setFont(new Font("Serif", Font.BOLD, 16));
        someTextField.setForeground(Color.black);
        someTextField.setBackground(Color.orange);
        someTextField.setName("someTextField");
        someTextField.setDataList(listSomeString);

        // Configure JList
        someComboBox.setPrototypeDisplayValue("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        someComboBox.setFont(new Font("Serif", Font.BOLD, 16));
        someComboBox.setForeground(Color.black);
        someComboBox.setBackground(Color.YELLOW);
        someComboBox.getEditor().selectAll();
        someComboBox.getEditor().getEditorComponent().setBackground(Color.YELLOW);
        ((JTextField) someComboBox.getEditor().getEditorComponent()).setDisabledTextColor(Color.black);
        someComboBox.setName("someComboBox");
        someComboBox.setDataList(listSomeAnotherString);

        // Create JFrame
        frame = new JFrame();
        frame.setLayout(new GridLayout(0, 1, 10, 10));
        frame.add(someTextField);
        frame.add(someComboBox);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocation(100, 100);
        frame.pack();
        frame.setVisible(true);

        // Set initial focus
        someTextField.grabFocus();
        someTextField.requestFocus();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                AutoCompleteTextField aCTF = new AutoCompleteTextField();
            }
        });
    }
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie mithilfe eines JTextfields und einer JList Vorschläge zur automatischen Vervollständigung effektiv in Ihre Java-Anwendung integrieren.

Das obige ist der detaillierte Inhalt vonWie kann ich die Funktion zur automatischen Vervollständigung in einem JTextfield mithilfe einer JList in Java implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage