martes, 14 de abril de 2009

Movimiento de gráficos mediante botones en Java

Se debe partir de un panel (jPanel) integrado en una ventana (jFrame) tal como se ha explicado en el artículo Gráficos en Java.

Esta explicación se basa en un ejemplo que realiza el movimiento de una bola utilizando cuatro botones para subir, bajar y desplazar a la derecha e izquierda. Descarga del ejemplo completo para NetBeans.

Hay declarados dos atributos en la clase Tablero (jPanel) con las coordenadas donde se debe mostrar la bola, que inicialmente están inicializados para que se muestre en la parte central del tablero. A través de la actualización de los valores de esos atributos se realizará el movimiento de la bola.

public class Tablero extends javax.swing.JPanel {
    private int posX = 45;
    private int posY = 45;

La bola se dibujará en el método paint utilizando las coordenadas anteriores, con un tamaño 10.

    public void paint(Graphics g)
    {
        super.paint(g);
        g.fillOval(posX, posY, 10, 10);
    }

En el códido del panel se han definido una serie de métodos que realizan las operaciones de movimiento deseado. En cada movimiento se modifica el atributo correspondiente para cambiar la posición de la bola y se hace la llamada al método repaint para que se ejecute de nuevo el código del paint visto antes y que se encarga de mostrar la bola.

    public void moverArriba()
    {
        posY--;
        repaint();
    }

    public void moverAbajo()
    {
        posY++;
        repaint();
    }

    public void moverDerecha()
    {
        posX++;
        repaint();
    }

    public void moverIzquierda()
    {
        posX--;
        repaint();
    }

Los botones que permiten al usuario realizar el movimiento se han incluido en la ventana, fuera del panel.


A cada botón se le ha asignado el código necesario para que realice la llamada al método que corresponda del panel para hacer el movimiento de la bola.

    private void botonArribaActionPerformed(java.awt.event.ActionEvent evt)
    {                                                
        tablero1.moverArriba();
    }                                          

    private void botonAbajoActionPerformed(java.awt.event.ActionEvent evt)
    {                                              
        tablero1.moverAbajo();
    }                                          

    private void botonIzquierdaActionPerformed(java.awt.event.ActionEvent evt)
    {                                                  
        tablero1.moverIzquierda();
    }                                              

    private void botonDerechaActionPerformed(java.awt.event.ActionEvent evt)
    {                                                
        tablero1.moverDerecha();
    }

Hay que observar el nombre que ha recibido el panel al integrarlo en la ventana. En este caso le ha dado el nombre tablero1. Este nombre puede verse en las propiedades al seleccionar el panel.


1 comentario:

  1. Buenas.. muy bueno la explicacion.. pero quisiera saber como podria ser el codigo para que al pulsar una combinacion de teclas aparesca una pantalla.. por ejemplo si presiono CRTL+SHIFT+R aparesca una pantalla donde encontrara una informacion

    ResponderEliminar

 

Contador de visitas