Foros del Web » Programación para mayores de 30 ;) » Java »

addKeyListener() en JComboBox ??

Estas en el tema de addKeyListener() en JComboBox ?? en el foro de Java en Foros del Web. Hola! alguien sabe porque un JComboBox no responde al evento addKeyListener?? Yo tengo un JComboBox editable, que se puede escribir, y quisiera que cuando pulse ...
  #1 (permalink)  
Antiguo 08/07/2011, 03:12
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
addKeyListener() en JComboBox ??

Hola! alguien sabe porque un JComboBox no responde al evento addKeyListener??

Yo tengo un JComboBox editable, que se puede escribir, y quisiera que cuando pulse una tecla, esta misma se imprima por pantalla.

Mi codigo:


Código:
JComboBox box= new JComboBox();
box.setEditable(true);
box.addKeyListener(new KeyAdapter(){
			
	public void keyTyped (KeyEvent e){
				
		System.out.println("Presiono" + e.getKeyChar());
	}
});

Porque esto funciona para un JTextField y NO para un JComboBox editable???

Alguien sabe porque??

Gracias por pasar a leer!
  #2 (permalink)  
Antiguo 08/07/2011, 10:52
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: addKeyListener() en JComboBox ??

Que tal !!!!

El combo es diferente al textbox, la idea de un combo es tener una lista de elementos de los cuales se debe seleccionar uno, por lo tanto los eventos a revisar son los que te indican si la lista de elementos ha cambiado o se ha modificado alguno.

Mira este link: http://download.oracle.com/javase/tu.../combobox.html

Saludos.
__________________
Dejenme saber cuando estoy equivocado y cuando estoy en lo cierto dejenme saber si existe una solución mejor.
  #3 (permalink)  
Antiguo 08/07/2011, 11:19
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: addKeyListener() en JComboBox ??

El problema está en que el componente que toma el foco en el caso de que cambies algo es el editor interno. Tienes que obtener una referencia a ese editor y asignarle a este el evento:

Código Java:
Ver original
  1. box.getEditor().getEditorComponent().addKeyListener(            
  2.                 new KeyAdapter(){          
  3.             @Override
  4.     public void keyTyped (KeyEvent e){             
  5.         System.out.println("Presiono" + e.getKeyChar());
  6.     }} );
  #4 (permalink)  
Antiguo 08/07/2011, 15:07
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: addKeyListener() en JComboBox ??

Muchas gracias por responder!

problema solucionado!

Saludos!

Etiquetas: jcombobox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.