Ayuda Java: KeyListener

kassiusk1

Hola, tengo un formulairo conectado a una base de datos, con varias clases. En una clase conecto a la base de datos, en otra creo los métodos para las consultas y actualizaciones y en otra clase creo los métodos de los botones en los que llamo a las consultas.

Para explicarme mejor, os pongo un ejemplo de borrar un usuario:

deteleCliente

En otra clase distinta hago esto con un botón, llamo a "deleteCliente" y se borra de la Base de Datos.

_botónborrar

No se si me explico muy bien. Lo que necesito es que en vez de pulsar el botón para borrar el usuario, es pulsar la tecla Intro. Para esto he intentado crear un clase "teclaenter" y ahí dar orden de borrar el Cliente (Cliente es un ejemplo, que esto es un ejercicio, nada profesional). Al crear la clase pongo esto:

pressEnter

No entiendo por qué el Netbeans me obliga a crear los public void de keyTyped, keyPressed y keyReleased, si no pongo eso, me da error la clase. Ya en otra clase avisaría a esta pa que se entere de que hay cosas aquí, pero cómo en esta clase qué pongo para que se entere el programa de que estoy pulsando la tecla Intro?? Espero que alguien me pueda ayudar :_(

atom

Porque estás implementando un interface que tiene definidos esos métodos.

1 respuesta
kassiusk1

#2 Me estás contestando a a por qué me pone el Netbeans los metodos, keyTyped etc? Estoy un poco perdido, ocnfimarme eso plz.

1 respuesta
atom

#3 Eso es, el interface KeyListener tiene definidos esos métodos y si lo implementas en tu clase estás obligado a implementar todos los métodos que describe.

http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyListener.html

Edit: En lugar de implementar el interface puedes extender la clase abstracta KeyAdapter y entonces solamente tienes que implementar los métodos que te interesen.

kassiusk1

Y poniendole:

if (e.getKeyCode() == KeyEvent.VK_ENTER) {
            
System.out.println("se pulso la tecla Intro"); }

Debería hacerme caso, no?

1 respuesta
atom

#5 Primero tienes que crear un objeto del listener que has implementado y registrarlo con el método addKeyListener.

1 respuesta
kassiusk1

#6 vale, creo que voy entendiendo. Voy a romperme la cabeza un rato. Muchas gracias

edit: Ya lo he arreglado, simplemente poniendo esta línea: Simplemente el textfield en el que pongo el codigo del usuario no escuchaba eventos, entonces era imposible que el botón se activase para realizar la búsqueda al presionar intro. Pongo esto por si alguien se ve en mi situación. Muchas gracias a #6 de nuevo por la ayuda!

_ventana.txt1.addActionListener (new ActionListener(){public void actionPerformed (ActionEvent e){_pulsarbotonbt2();}});

donde _ventana es la clase del formulario, txt1 es el textfield donde pongo el codigo y _pulsarboton2() es el botón, dode realizo la consulta en la Base de Datos. Saludos.

Usuarios habituales

  • kassiusk1
  • atom