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

JTable mas KeyListener

Estas en el tema de JTable mas KeyListener en el foro de Java en Foros del Web. Hola! Estoy buscando la manera de hacer que mi JTable reaccione al hacer ENTER y poder capturar asi un determinado valor. El problema es que ...
  #1 (permalink)  
Antiguo 25/08/2010, 20:46
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
JTable mas KeyListener

Hola!

Estoy buscando la manera de hacer que mi JTable reaccione al hacer ENTER y poder capturar asi un determinado valor. El problema es que lo he intentado de muchas manera y simplemente no funciona.

Lo que he hecho:

Código PHP:
tabla.addKeyListener(new EnterListenerDetalle()); 
Código PHP:
class EnterListenerDetalle extends KeyAdapter
    
{
    public 
void pressEnter(KeyEvent e)
    {
            
int p e.getKeyCode();
            if (
== KeyEvent.VK_ENTER);
            {
                
int fila tabla.getSelectedRow();
                
int col tabla.getSelectedColumn();
                
JOptionPane.showMessageDialog(null"Enter");
            }
    }
    } 
Si lo pruebo, preciono Enter y no pasa nada, solo la seleccion de la JTable baja una fila... Ni siquiera muestra el mensaje de JOptionPane.

¿Que hago mal?
  #2 (permalink)  
Antiguo 25/08/2010, 21:57
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: JTable mas KeyListener

Hola,

Código:
class EnterListenerDetalle extends KeyAdapter
    {
	// public void pressEnter(KeyEvent e)
	public void keyPressed(KeyEvent e) {
	{
            int p = e.getKeyCode();
            if (p == KeyEvent.VK_ENTER && !tabla.isEditing());
            {
                e.consume();
                int fila = tabla.getSelectedRow();
                int col = tabla.getSelectedColumn();
                JOptionPane.showMessageDialog(null, "Enter");
            }
	}
    }
KeyAdapter define los métodos keyPressed, keyReleased y keyTyped, esos son los métodos que se van a disparar cuando suceda el evento respectivo.

Posiblemente mientras la tabla isEditing() no deberías de capturar el evento Enter, dependiendo de las acciones que realices nunca va a salir de la edición.

Por último posiblemente necesites consumir (consume) el evento, para que no baje de línea.

Saludos,
  #3 (permalink)  
Antiguo 30/08/2010, 08:28
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: JTable mas KeyListener

Gracias!
Funciona bien, pero tiene un pequeño problema... El evento se dispara al precionar cualquier tecla, no solo con el ENTER.

Ayuda please.

Etiquetas: jtable, mas
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 19:38.