在许多Windows应用程序里面,最常见的是IE的地址栏,当我们在ComboBox的文本框内容时,它的下拉列表中自动列出最匹配的项目,并且将最匹配的项目显示在输入框中。
在Java中有个JComboBox类,它可以实现下拉选择或者输入选择。但是它本身没有提供自动查找和完成功能。我们现在就来 “改装”这个类,使它具有自动查找和完成功能。
改装思路如下:
1. 先继承一个JComboBox类,将其setEditable为true. 这样的话,用户才可以在combobox上输入文字。
2. 我们知道combobox的输入框是一个JTextField, 可以通过comboBox.getEditor().getEditorComponent()取得这个文本框。
3. 为这个文本框加上一个KeyListener.
4. 当用户在文本框中按键时,会解发keyReleased事件,我们在这个事件里写主要的实现自动查找和完成的代码。
思想就是这么简单,而自动查找的算法,任何一个对编程不陌生的人都可以写出。以下我列出完整的程序代码: