Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/10/2011, 23:45
martin0290
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
No puedo usar KeyListener (mover objeto G) :(

Hola que tal, hace unos días empece a ver java y bueno me tope con esto que es medio tonto pero no me sale jaja.

Quiero mover un objeto Graphics g.

Tengo 3 clases.


Mi main
Código:
public class lavivorita {


    public static void main(String[] args) {
        ventana v = new ventana();
    }

}
Mi ventana

Código:
import javax.swing.JFrame;


public class ventana extends JFrame {


    public ventana () {
        super("Graficos");
        this.setSize(405,408);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        definirGraficos();
        this.setResizable(false);
        this.setVisible(true);
    }



    public void definirGraficos() {

        lista p = new lista ();
        add(p);
    }


}

hasta todo bien, y ahora:

Mi clase de gráficos

Código:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;


public class lista extends JPanel implements KeyListener {

    public lista() {
        setSize(405,408);
        this.addKeyListener(this);
    }

    int x=202,y=202;
    public void paintComponent (Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, 400, 376);

        g.setColor(Color.WHITE);
        g.drawLine(400,25,0,25);
        g.drawLine(400,50,0,50);
        g.drawLine(400,75,0,75);
        g.drawLine(400,100,0,100);
        g.drawLine(400,125,0,125);
        g.drawLine(400,150,0,150);
        g.drawLine(400,175,0,175);
        g.drawLine(400,200,0,200);
        g.drawLine(400,225,0,225);
        g.drawLine(400,250,0,250);
        g.drawLine(400,275,0,275);
        g.drawLine(400,300,0,300);
        g.drawLine(400,325,0,325);
        g.drawLine(400,350,0,350);

        g.drawLine( 25, 0, 25, 400 );
        g.drawLine( 50, 0, 50, 400 );
        g.drawLine( 75, 0, 75, 400 );
        g.drawLine( 100, 0, 100, 400 );
        g.drawLine( 125, 0, 125, 400 );
        g.drawLine( 150, 0, 150, 400 );
        g.drawLine( 175, 0, 175, 400 );
        g.drawLine( 200, 0, 200, 400 );
        g.drawLine( 225, 0, 225, 400 );
        g.drawLine( 250, 0, 250, 400 );
        g.drawLine( 275, 0, 275, 400 );
        g.drawLine( 300, 0, 300, 400 );
        g.drawLine( 325, 0, 325, 400 );
        g.drawLine( 350, 0, 350, 400 );
        g.drawLine( 375, 0, 375, 400 );



        g.setColor(Color.red);
        g.fillRect(x, y, 22, 22);

    }
    


    public void keyTyped(KeyEvent e) { //Cuando se preciona una tecla y se mantiene precionada


    }

    public void keyPressed(KeyEvent e) {//Cuando se suelta la tecla

        if(e.getKeyCode()==KeyEvent.VK_UP){
            y+=3;
            x+=3;
            this.repaint();
        }
                     

            
    }

    public void keyReleased(KeyEvent e) { //La primera ves que se preciona

    }




    }

Lo único que hago es decirle que al presionar arriba me modifique X, Y para que se mueva el objeto, nada mas :(

Ayudaa