2011-08-29 4 views
1

필자는 텍스트 필드를 가지고 있으며 필드에 글을 쓰고 싶다면 그 글자에 관한 가능한 옵션 목록을 보여줄 것이며 이것이 자동 완성이라고합니다.텍스트 필드에 타이핑을 시작할 때 자동 완성리스트를 만드는 방법은 무엇입니까?

다른 사람이 나에게 아이디어 나 샘플을 줄 수 있습니까?

감사합니다 ..

+0

어디에서 구현하고 싶습니까? HTML 또는 QT 또는 다른 GUI 모드. 이 질문이 없으면이 질문에 대답하기가 어렵습니다. – Koran

+0

@ 코란 - 질문은 AWT/Swing을 기대할 수 있도록 (일반) java 태그가 붙어 있습니다. GUI에서만 –

+0

입니다. 그리고 나서 번역 프로그램을 만들고 있기 때문에 나중에 데이터베이스의 단어를 사용합니다. – sack

답변

2

hereAutoCompleteComboBox/JFextField하다 보면, 두 개의 클래스가 JTextField에 대한 두 번째, JComboBox 하나가 .. 자동 완성을 시작 할 수 있습니다 , 알림 자동 완성 기능을 사용하려면 두 클래스가 모두 필요합니다.

+0

나는 어떻게 달릴 수 있습니까? 그것은 메인이 필요합니다. – sack

+0

예를 들어 List, setDataList (myList) 배열을 정의해야합니다. – mKorbel

+0

전체 샘플 코드가 있습니까? – sack

1

난 당신이 정말 구글해야 관대 한 느낌 ...

사용자 유형으로, 당신은 like '<userInput>%'하여 DB를 조회 풀다운으로 결과를 반환해야 할 것입니다. DB를 해머하지 않도록 사용자가 입력하는 동안 잠시 기다려야 할 것입니다.

데이터베이스가없는 경우 초기 입력을 지나서 모든 후속 단어를 표시 할 수 있기 때문에이 데이터 구조는 Trie이라고합니다.

+0

감사하지만 GUI에서만 사용합니다. 텍스트 입력란에 무언가를 입력하면 추천 목록이 텍스트 입력란 바로 아래에 표시됩니다. 그리고 제안 목록은 내 데이터베이스에서 오는 것입니다 그러나 그 동안 나는 내 DB에 적용하기 전에 배열의 문자열을 시도 할 수 있습니다. 이 문제에 대해 저에게 도움이 될 수 있습니까? 고맙습니다 .. – sack

+0

똑같은 ... 사용자가 입력 할 때 텍스트 필드에서 입력을 캡처하고 일치하는 데 사용할 데이터 소스를 검색해야합니다. 배열을 사용하는 것은 성능이 O (n * m)이기 때문에 (배열 내의 각 문자열을 검색해야하기 때문에) 비용이 많이 들지만 테스트하기에 좋을 것입니다. –

+0

예 .. 이미 일부 단위 테스트를 시도했지만 지금은 GUI로 시도하고 싶습니다. 그것의 조용히 단단한 thats 왜 나가이 재료의 종류를 요구하고 있는지. 글쎄, 내가 한 말대로 해 볼게. tnx .. ;-) – sack

4

콤보 상자를 사용하여 텍스트 필드의 모든 변경 사항을 수신합니다. 모든 이벤트에서 실제 내용을 읽고 소스 목록에 가능한 일치 항목을 쿼리하십시오. 그런 다음 결과를 사용하여 연관된 목록을 채 웁니다. 사용자가 그렇지 않으면 목록이 너무 길어질 수 있으며, 두 개 또는 세 개의 문자를 입력 한 후에

당신은

+0

콤보 상자 대신 Jlist를 사용하면 괜찮습니까? JPopupMenu를 사용해야합니까? – sack

+0

물론, 추천 단어 목록과 텍스트 입력란을 분리하여 보관하십시오. 그러나 대개 이것은 * one * 위젯 내에서 수행됩니다. 사용자가 무언가를 입력하면 제안이 파편 바로 아래에 나타납니다. - (2), 아니오, JComboBox를 사용하면 팝업 메뉴가 필요 없습니다. –

+0

예 .. 당신이 말한 전부는 정말로 필요한 것입니다. 제안 목록을 텍스트 필드 아래에 두는 방법을 알고 있습니까? 나는이 필드를 위해 다른 창을 사용해야 만하거나 필드에 뭔가를 입력 할 때 텍스트 필드 바로 아래에 나타나도록 x, y 좌표를 만들어야합니까? – sack

관련 문제