| Utility class to make component searchable. It's very easy to use this class.
In order to make a component, all you need to do is to call
SearchableUtils.installSearchable(component);
The component could be a JList, JTree or JTable. If you need to further customize some
attributes of Searchable, you can assign a variable that returns from installSearchable().
Searchable searchable = SearchableUtils.installSearchable(component);
// further configure it
searchable.setCaseSensitive(true);
// ...
Usually you don't need to uninstall the searchable from the component. But if for some reason, you need
to disable the searchable feature of the component, you can call uninstallSearchable().
Searchable searchable = SearchableUtils.installSearchable(component);
// ...
// Now disable it
SearchableUtils.uninstallSearchable(searchable);
There is a small trick that you should know. JTree and JList implemented partially the
quick search feature so that when you type in the first charactor, it will jump to the first
occurence. This feature sometimes conflicts with the Searchable we provided. So it'd better
if you disable the JTree or JList default feature by creating JTree
and JList with getNextMatch method overridden. See below
JTree tree = new JTree(...) {
public TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias) {
return null;
}
};
JList list = new JList(...){
public int getNextMatch(String prefix, int startIndex, Position.Bias bias) {
return -1;
}
};
|