Java で JList を使用して検索機能を作成しようとしています。JList に挿入した ListModel に連絡先のリストがあります。すべての連絡先が正常に表示されます。ただし、連絡先のリストの上に検索ボックスがあり、ユーザーが入力するときに検索ボックスに入力するものに連絡先を絞り込みたい(Google検索など)。ただし、検索ボックスに入力しようとすると、すべての連絡先が表示されなくなり、バックスペースもできなくなります。私の KeyListener コードは次のとおりです。
KeyListener klisten = new KeyListener()
{
public void keyPressed(KeyEvent evt)
{
searchResults = new ContactList();
listModel.removeAllElements();
searchResults.addContact(contactList.getContact(evt.getKeyChar()));
for (int i = 0; i < searchResults.getContacts().size(); i++)
{
listModel.addElement(searchResults.getContact(i).getFname() + " " + searchResults.getContact(i).getLname());
}
contacts = new JList(listModel);
contacts.validate();
}
public void keyReleased(KeyEvent evt) {}
public void keyTyped(KeyEvent evt) {}
};
searchField.addKeyListener(klisten);
EDIT**すべての元の連絡先を含む元の ListModel は、この匿名クラスの前に宣言され、完全な連絡先リストを置き換えるためにこのクラスで再利用した listModel と呼ばれます。
これを解決する助けがあれば、大いに役立ちます。コードの他の部分を投稿する必要がある場合はお知らせください。