ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Eventos


Enviado por   •  23 de Abril de 2015  •  Tarea  •  2.123 Palabras (9 Páginas)  •  148 Visitas

Página 1 de 9

Esta es una de las cosas que se tienen que empezar a ver antes de crear un juego (Un juego que necesite movimientos). Con esto por ejemplo podemos mover nuestro personaje con las tradicionales teclas W S A D, o tambien puede ser, para los programas de chat, para que al presionar ENTER, envie el mensaje, tambien para los accesos rapidos en las aplicaciones GUI, y lo que se les ocurra…

Empecemos…

Primero, empezaremos creando una GUI básica.

Despues importaremos la biblioteca para poder usar el KeyListener:

import java.awt.event.*;

En la linea donde declaramos la clase implementamos la interfaz KeyListener

public class Main extends JFrame implements KeyListener {

Crearemos un objeto para mover, por ejemplo, un JButton.

(No dire como crear un boton, ya que esto tenes que saberlo)

Luego declaramos 4 variables:

final int a = 40;

final int b = 40;

int y, x;

Las variables A y B definen el tamaño del boton, y las variables X e Y definen la posicion (coordenadas) del boton, nosotros lo que haremos será cambiar el valor de X e Y para que nuestro boton se vaya moviendo.

En el constructor de la clase, añaniremos una “escucha” al boton con la siguiente linea:

boton.addKeyListener(this);

Crearemos dos metodos, que no usaremos, pero que son obligatorios crearlos

public void keyReleased(KeyEvent evt) { }

public void keyTyped(KeyEvent evt) { }

Crearemos el metodo que si usaremos:

public void keyPressed(KeyEvent evt) {

}

Para capturar las teclas presionadas, usaremos un condicional switch(); de la siguiente forma:

switch(evt.getKeyCode()) {

case KeyEvent.VK_W:

y -= 1;

boton.setBounds(x, y, a, b);

break;

case KeyEvent.VK_S:

y += 1;

boton.setBounds(x, y, a, b);

break;

case KeyEvent.VK_A:

x -= 1;

boton.setBounds(x, y, a, b);

break;

case KeyEvent.VK_D:

x += 1;

boton.setBounds(x, y, a, b);

break;

}

Primero, por ejemplo en el caso de la W, le restamos 1 a Y y luego le asignamos la nueva posicion con setBounds(); pasandole las variables de posicion y de tamaño, y este, al cambiar el valor de Y, veran como el boton subira para arriba, lo mismo para A, S y D para sus correspondientes direcciones.

Bueno, como dije, esto lo pueden usar para chats, para accesos rapidos en aplicaciones, para juegos, y lo que se les ocurra.

Primero importaremos la librería de la clase:

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

Para que nuestra clase pueda usar esta interface debemos implementarla de la siguiente manera:

public class EscucharTeclas extends JFrame implements KeyListener {}

Esto nos creará tres metodos por defecto para las acciones antes dichas (presionar, escribir, soltar) sobre las teclas. Si utilizamos un IDE nos lo genera automaticamente pero sino acá dejo los tres métodos:

@Override

public void keyPressed(KeyEvent e) {}

@Override

public void keyReleased(KeyEvent e) {}

@Override

public void keyTyped(KeyEvent e) {}

Crearemos una clase que implemente esta interface y que contenga un botón:

private JButton getbAceptar() {

bAceptar = new JButton("Aceptar");

// Acá es donde se le dice que escuche a las teclas

bAceptar.addKeyListener(this);

bAceptar.setBounds(10, 10, 100, 20);

return bAceptar;

}

En cada método de los anteriores colocaremos una salida a consola de la siguiente manera:

@Override

public void keyPressed(KeyEvent e) {

int key = e.getKeyCode();

if (key == KeyEvent.VK_ENTER) {

System.out.println("Presionó Enter!" + (char) key);

}

if (key == KeyEvent.VK_SPACE) {

System.out.println("Presionó Espacio!" + (char) key);

}

}

@Override

public void keyReleased(KeyEvent e) {

System.out.println("Soltó una tecla");

}

@Override

public void keyTyped(KeyEvent e) {

System.out.println("Escribió una tecla");

}import javax.swing.JTabbedPane;

Nuestra clase final quedaría así y con esto ya tenemos un ejemplo demasiado sencillo para entender su utilización.

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JButton;

import javax.swing.JFrame;

@SuppressWarnings("serial")

public class EscucharTeclas extends JFrame implements KeyListener {

private JButton bAceptar;

public EscucharTeclas() {

add(getbAceptar());

inicializador();

}

private void inicializador() {

setLayout(null);

setTitle("Prueba con Teclas");

setVisible(true);

setSize(300, 300);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

private JButton getbAceptar() {

bAceptar = new JButton("Aceptar");

bAceptar.addKeyListener(this);

bAceptar.setBounds(10, 10, 100, 20);

return bAceptar;

}

@Override

public void keyPressed(KeyEvent e) {

int key = e.getKeyCode();

if (key == KeyEvent.VK_ENTER) {

System.out.println("Presionó Enter!" + (char) key);

}

if (key == KeyEvent.VK_SPACE) {

System.out.println("Presionó Espacio!" + (char) key);

}

}

@Override

public void keyReleased(KeyEvent e) {

System.out.println("Soltó

...

Descargar como (para miembros actualizados) txt (12 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com