문제

스윙에서 빠른 검색결과를 표시하는데 어떤 컴포넌트가 가장 좋은지 고민 중입니다.나는 이와 같은 것을 만들고 싶고, 사용자가 텍스트를 입력할 수 있는 텍스트 필드를 만들고 싶습니다. 입력하는 동안 데이터베이스의 백엔드 빠른 검색을 개선하고 텍스트 상자 아래에 데이터를 표시하고 싶습니다. 결과를 찾아보고 Enter 키를 누르면 결과가 테이블에 표시됩니다.그래서 내 질문은 이미 표시할 논리가 있는 구성 요소가 있습니까?아니면 그렇지 않습니까? 이를 구현하는 가장 좋은 방법은 무엇입니까?

이 검색은 데스크톱 애플리케이션에서 가능하다면 ajax가 웹에서 제공하는 것과 동일한 로직, 동일한 모양과 느낌을 제공합니다.

도움이 되었습니까?

해결책

Java Swing용 AutoComplete 구성 요소와 같은 것을 찾고 계십니까?

스윙X 이런 구성요소가 있습니다.보다 여기 JavaDoc의 경우.다양한 작업을 수행하는 많은 유틸리티 메서드가 있습니다.JList의 내용에서 텍스트 상자를 자동 완성합니다.

다른 팁

먼저 리스너를 JTextField에스 Document 사용자가 필드에 입력하거나 변경할 때마다 알림을 받습니다.

여기에서 필요한 서버측 코드를 실행할 수 있습니다.그 결과는 목록 상자를 업데이트하는 데 사용될 수 있습니다.

명심해야 할 몇 가지 사항:

  1. 백엔드에 대해 검색을 수행하는 코드는 다른 스레드에 있어야 합니다.
  2. 목록 상자를 업데이트하는 코드는 목록 상자의 모델을 업데이트해야 합니다.
  3. 가장 최근 결과로만 목록 상자를 업데이트하도록 모든 백엔드 검색 결과를 관리해야 합니다(예:사용자가 'A'를 입력하면 backenf가 이를 검색합니다.그 사이에 사용자는 'C'를 입력하여 'AC'에 대한 백엔드 검색을 시작했습니다.'AC' 검색 결과가 사용 가능한 경우 'A' 검색 결과가 목록 상자에 표시되지 않도록 해야 합니다.

강력히, 강력히 추천합니다. 유약 목록 - 이것은 시중에서 가장 훌륭한 오픈 소스 Java 라이브러리 중 하나이며, 귀하가 요청하는 대부분의 내용을 매우 쉽게 만들어줍니다.

최대 절전 모드 검색을 사용하세요.

스윙핵(http://oreilly.com/catalog/9780596009076/) 책에 이에 대한 예가 있습니다.

일석이조의 이익을 위해:별도의 인덱싱 스레드가 있습니다.이는 다음을 수행합니다.

  1. 실행될 때마다 검색 속도가 향상됩니다.
  2. 인덱싱이 별도의 스레드에서 발생하므로 UI의 응답성이 향상됩니다.

물론, 정확히 인덱싱을 수행하는 방법은 특정 애플리케이션에 따라 크게 달라집니다.연구를 시작하기 좋은 곳은 다음과 같습니다. 검색 인덱싱.그리고 다음에 대한 언급은 무시하십시오. 웹 3.0 [원문].

물론 가능합니다.그것은 또한 간단하다.드롭다운 용어 목록을 보려면 팝업 메뉴를 사용하세요.이것은 간단합니다.입력된 텍스트의 백그라운드 처리도 간단합니다.즐기다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top