Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh melaksanakan fungsi autolengkap dalam JTextfield menggunakan JList dalam Java?

Bagaimanakah saya boleh melaksanakan fungsi autolengkap dalam JTextfield menggunakan JList dalam Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 11:56:02831semak imbas

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

Cadangan AutoLengkap untuk JTextfield Menggunakan JList

Di Java, melaksanakan ciri autolengkap untuk JTextfield boleh dilakukan dengan menggunakan JList untuk dipaparkan pilihan cadangan semasa pengguna memasukkan aksara. Begini cara anda boleh mendekati perkara ini:

  1. Isih Tatasusunan Anda: Untuk prestasi yang lebih baik, disyorkan untuk mengisih senarai rentetan cadangan sebelum menggunakannya.
  2. Pemasangan Kelas Pilihan: Dalam contoh yang disediakan, dua kelas digunakan: Java2sAutoTextField dan Java2sAutoComboBox. Kelas ini mengendalikan kefungsian autolengkap.
  3. Nilai Awal: Menetapkan nilai awal untuk JTextfield meningkatkan pengalaman pengguna.

Contoh Output:

[Imej cadangan autolengkap dipaparkan dalam medan JText di bawah medan input]

Kod Contoh:

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();
            }
        });
    }
}

Oleh mengikut pendekatan ini, anda boleh menyepadukan cadangan autolengkap ke dalam aplikasi Java anda menggunakan JTextfield dan JList dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan fungsi autolengkap dalam JTextfield menggunakan JList dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn