All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jdesktop.swingx.autocomplete.package-info Maven / Gradle / Ivy

The newest version!
/*
 * $Id$
 *
 * Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle,
 * Santa Clara, California 95054, U.S.A. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */
/**
 * Contains classes to enable automatic completion for JComboBox and other
 * components.
 * 

* The automatic completion feature allows the user to enter a few characters * using the keyboard - meanwhile, the computer "guesses" what the * user intents to enter. Take a look at the example below to get an idea of the * resulting user experience. Suppose the user types 'J','O','R' and 'G'... *

*

* *

*

* The easiest way to get automatic completion for a component is to use the * {@link org.jdesktop.swingx.autocomplete.AutoCompleteDecorator AutoCompleteDecorator}. *

*

Enabling automatic completion for e.g. a JComboBox is only one line of * code:

*

* import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
* [...]
* JComboBox comboBox = [...];
* AutoCompleteDecorator.decorate(comboBox); *

*

When the combo box is not editable when calling * {@link org.jdesktop.swingx.autocomplete.AutoCompleteDecorator#decorate(JComboBox) decorate}, * the automatic completion will be strict (only allowing items contained in * the combo box). When the combo box is editable it will also be possible to * enter items that are not contained in the combo box. *

*

Take care when enabling automatic completion for a JComboBox that is used * as the cell editor for a JTable. You need to use the special * {@link org.jdesktop.swingx.autocomplete.ComboBoxCellEditor ComboBoxCellEditor} * instead of the standard DefaultCellEditor: *

*

* JTable table = [...];
* JComboBox comboBox = [...];
* [...]
* TableColumn column = table.getColumnModel().getColumn([...]);
* column.setCellEditor(new ComboBoxCellEditor(comboBox)); *

*

* If you want to enable automatic completion for a component that is not * supported by the {@link org.jdesktop.swingx.autocomplete.AutoCompleteDecorator AutoCompleteDecorator}, you * need to implement {@link org.jdesktop.swingx.autocomplete.AbstractAutoCompleteAdaptor AbstractAutoCompleteAdaptor}. For * an example see {@link org.jdesktop.swingx.autocomplete.ComboBoxAdaptor ComboBoxAdaptor} * and {@link org.jdesktop.swingx.autocomplete.ListAdaptor ListAdaptor}. *

*

* The automatic completion works only for subclasses of * {@link javax.swing.text.JTextComponent JTextComponent}. So you either use a component * that contains a JTextComponent (e.g. JComboBox) or you connect a * JTextComponent with another component (e.g. a JTextField and a JList). * Of course, it's also possible to enable automatic completion for a * JTextComponent without another visual component. *

*

Once you have a custom implementation of * {@link org.jdesktop.swingx.autocomplete.AbstractAutoCompleteAdaptor AbstractAutoCompleteAdaptor}, * you normally would only have to make three more calls: *

*

* * AbstractAutoCompleteAdaptor adaptor = new YourAdaptor([...]);
* AutoCompleteDocument document = new AutoCompleteDocument(adaptor, true); // or false if you need non-strict matching
* AutoCompleteDecorator.decorate(yourTextComponent, document, adaptor); *
*

*/ package org.jdesktop.swingx.autocomplete;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy