En este hilo, he encontrado una manera de implementar la AutoComplete
función en un JTextField
(y JComboBox
, pero no hay problema con esto).
Al intentar implementar esta característica en un JTextField
arroja algunas excepciones. El siguiente código demostrará el problema. Es muy simple, muy similar a la forma en que solía JComboBox
, que funciona bien.
¿Alguien puede ayudarme a encontrar una solución a esto?
Aquí está el código:
( Tenga en cuenta que estoy usandoswingx
)
import javax.swing.JList;
import org.jdesktop.swingx.JXFrame;
import org.jdesktop.swingx.JXTextField;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
public class ErrorDemo {
public static void main(String[] args) {
JXFrame frame = new JXFrame("Error Demo");
JXTextField field = new JXTextField();
String[] users = {"aaa", "bbb", "ccc"};
AutoCompleteDecorator.decorate(new JList(users), field);
frame.getContentPane().add(field);
frame.pack();
frame.setLocationByPlatform(true);
frame.setDefaultCloseOperation(JXFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Este es el mensaje de error que recibo:
( es un poco largo: D )
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.jdesktop.swingx.autocomplete.ListAdaptor.valueChanged(ListAdaptor.java:76)
at javax.swing.JList.fireSelectionValueChanged(JList.java:1765)
at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1779)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:388)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:398)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:442)
at javax.swing.JList.setSelectedIndex(JList.java:2179)
at javax.swing.JList.setSelectedValue(JList.java:2295)
at org.jdesktop.swingx.autocomplete.ListAdaptor.setSelectedItem(ListAdaptor.java:98)
at org.jdesktop.swingx.autocomplete.AutoCompleteDocument.setSelectedItem(AutoCompleteDocument.java:317)
at org.jdesktop.swingx.autocomplete.AutoCompleteDocument.insertString(AutoCompleteDocument.java:265)
at javax.swing.text.JTextComponent.replaceSelection(JTextComponent.java:1358)
at javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.actionPerformed(DefaultEditorKit.java:859)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at java.awt.Component.processEvent(Component.java:5815)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:697)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:962)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:834)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4282)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Estoy tratando de entender el concepto de operadores de turno y estaba probando el siguiente código: 15 >> 2; - 15 >> 2 El resultado del primer enunciado es 3 como 15/4 = 3 pero el ...
Hola, estoy tratando de abrir el archivo de Word usando el programa Java. El programa me da el siguiente error "No se puede hacer una referencia estática al método abierto (Archivo) no estático desde el tipo Escritorio No sé cómo ...
Estoy construyendo una habilidad de Alexa personalizada en la que puedo preguntar el nombre de Usuario y repetirlo. (Funcionando bien). Ahora, la siguiente parte es confirmar el nombre del usuario. Alexa: "¡Por favor confirma tu nombre!" <Br & ...
Tengo un formulario que contiene JTextFields, algunos son específicos para francés y otros para árabe. Quiero cambiar de un idioma a otro sin presionar la tecla Alt + Mayús. Cualquier ayuda sobre la solución ...