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

Ejemplo de Eventos Con Teclas

Estas en el tema de Ejemplo de Eventos Con Teclas en el foro de Java en Foros del Web. Bueno, hice este pequeño ejemplo para responder una duda y ahí vá, espero que sirva. dos simples clases: PulsarTeclas.java Panel.java PulsarTeclas.java Código PHP: import java . ...
  #1 (permalink)  
Antiguo 02/02/2010, 00:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 20
Antigüedad: 14 años, 4 meses
Puntos: 0
Información Ejemplo de Eventos Con Teclas

Bueno, hice este pequeño ejemplo para responder una duda y ahí vá, espero que sirva.

dos simples clases:

PulsarTeclas.java
Panel.java

PulsarTeclas.java
Código PHP:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class 
PulsarTeclas extends JFrame implements KeyListener
{
    
Panel pnl;
    
JLabel lb;
    public 
PulsarTeclas()
    {
        
this.setVisible(true);
        
this.setSize(400,300);
        
this.setTitle("KeyListener como opciones");
        
this.setLayout(null);
        
this.addKeyListener(this);
        
this.setLocation(300200);
        
pnl  = new Panel();
        
lb = new JLabel("Dibujar: C-Circulo, R-Rectangulo");
        
pnl.setLayout(null);
        
pnl.setBounds(1050365205);
        
lb.setBounds(101020030);
        
pnl.setBackground(Color.white);
        
add(pnl);
        
add(lb);
    }
    public 
void keyTyped(KeyEvent e)
    {
    }
    public 
void keyReleased(KeyEvent e)
    {
    }
    public 
void keyPressed(KeyEvent e)
    {
        
int tecla e.getKeyCode();
        if(
tecla == 67)//la tecla fue la 'C'???
        
{
            
pnl.darValor(1);
        }
        else if(
tecla == 82)//la tecla fue la 'R'???
        
{
            
pnl.darValor(2);
        }
        else 
pnl.darValor(0);//<---cualquier tecla
    
}
    public static 
void main(String[] args)
    {
        
PulsarTeclas frm = new PulsarTeclas();
        
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

Lo que hago es, crear un JFrame al cual lo pongo que espere eventos de teclas... (implements KeyListener.... y despues this.addKeyListener(this))
y creo una instancia de Panel (que es la clase del archivo Panel.java) es donde dibujo un circulo si se presiona la tecla 'C'
o un rectangulo si se presiona la tecla 'R'


en el método keyPressed veo qué tecla se presionó y guardo el código ASCII de ésta en la variable 'tecla'
luego solo comparo para hacer la restricción (saber que hago dependiendo la tecla presionada)
y envio un valor a un metodo (darValor(int m) ) que está en Panel.java
(1 si fué la tecla 'C' o 2 si fué la tecla 'R' o 0 si fué otra tecla)


y Panel.java
Código PHP:
import java.awt.*;
import javax.swing.*;

public class 
Panel extends JPanel
{
    
int dibujar = -1;//solo para dejar un valor por defecto
    
public Panel()
    {}
    public 
void darValor(int m)
    {
        
this.mover m;
        
repaint();
    }
    public 
void paint(Graphics g)
    {
        
Dimension  tam this.getSize();
        
g.setColor(Color.WHITE);
        
g.fillRect(0,0,tam.width,tam.height);
        
g.setColor(Color.BLACK);
        if(
dibujar == 0)
        {
            
g.drawString("Tecla Equivocada!!!"11550);
        }
        else if(
dibujar==1)
        {
            
g.drawOval(80,0,200,200);
        }
        else if(
dibujar==2)
            
g.drawRect(75,0,210,200);
    }

aqui vamos a dibujar algo dependiendo el valor que nos llegue (recuerden a darValor le llega un 1, 2 o 0)

darValor(int m) le da el valor a una variable global 'dibujar' que es la que me indica la figura que se va a dibujar
0 -> texto 'Tecla equivocada'
1 -> Circulo
2 -> Rectangulo

y manda la orden de repintar (repaint()) la cual va al metodo paint(Graphics g)
(esto es por que ese metodo es reservado por Java por eso la llamada a éste no se hace como de costumbre)

éste metodo paint dibuja un cuadro blanco y despues la figura que 'dibujar' le diga (circulo..bla bla .......)

y listo, si miran detenidamente el código se darán cuenta que es muy facil.

cualquier duda no duden en hacerla.....

muchos exitos....
  #2 (permalink)  
Antiguo 02/02/2010, 11:59
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Ejemplo de Eventos Con Teclas

Excelente aporte, pero esto deberia ir en el SubForo FAQ..

Saludos...
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #3 (permalink)  
Antiguo 02/02/2010, 12:04
 
Fecha de Ingreso: diciembre-2009
Mensajes: 20
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ejemplo de Eventos Con Teclas

ok... moderadores por favor moverlo....
gracias...
  #4 (permalink)  
Antiguo 04/02/2010, 23:01
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Ejemplo de Eventos Con Teclas

Gracias está bien por el momento... espero poder continuar con tu ayuda... en el futuro cercano..
  #5 (permalink)  
Antiguo 08/02/2010, 15:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 20
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ejemplo de Eventos Con Teclas

Cita:
Iniciado por Wong Ver Mensaje
Gracias está bien por el momento... espero poder continuar con tu ayuda... en el futuro cercano..
cuenta siempre con Forosdelweb!!!
cuidate....

Etiquetas: bibujar, eventos, teclas
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 05:41.