> Java > java지도 시간 > 본문

Java에서 JList를 사용하여 JTextfield에서 자동 완성 기능을 어떻게 구현할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-11-17 11:56:02
원래의
833명이 탐색했습니다.

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

JList를 사용하여 JTextfield에 대한 자동 완성 제안

Java에서는 JList를 사용하여 JTextfield에 대한 자동 완성 기능을 구현하여 표시할 수 있습니다. 사용자가 문자를 입력할 때 제안 옵션. 접근 방법은 다음과 같습니다.

  1. 배열 정렬: 더 나은 성능을 위해 제안 문자열을 사용하기 전에 목록을 정렬하는 것이 좋습니다.
  2. 선택적 클래스 인스턴스화: 제공된 예에서는 Java2sAutoTextField 및 Java2sAutoComboBox의 두 클래스가 사용됩니다. 이러한 클래스는 자동 완성 기능을 처리합니다.
  3. 초기 값: JTextfield의 초기 값을 설정하면 사용자 경험이 향상됩니다.

출력 예:

[입력 필드 아래 JTextfield에 표시된 자동 완성 제안 이미지]

샘플 코드:

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();
            }
        });
    }
}
로그인 후 복사

By 이 접근 방식을 따르면 JTextfield 및 JList를 효과적으로 사용하여 자동 완성 제안을 Java 애플리케이션에 통합할 수 있습니다.

위 내용은 Java에서 JList를 사용하여 JTextfield에서 자동 완성 기능을 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿