Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2011, 09:36
Avatar de afranco
afranco
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta keyListener Linux y windows

Disculpen quisiera preguntar acerca de mi código, funciona en windows (NetBeans 6.9.1) pero al pasar a linux (sea ubuntu que yo uso o scientific linux en mi uni ambos con NetBeans 6.9) no funciona el keyListener, me pregunto porque, este es parte de mi código:

public class Main extends JApplet implements Runnable,KeyListener{
...

public void init () {...; addKeyListener( this );//ESTO PARECE QUE NO SE REGISTRA
...}

public void paint(Graphics g){.... //grafica en cada tiempo las balas esfericas ....}

public void start(){ //Comienza la animacion
if(anima ==null){anima=new Thread(this); anima.start();}}

public void run() { long t=System.currentTimeMillis();
while (true) { mueveBalas();
try{t+=retardo; Thread.sleep(Math.max(0, t-System.currentTimeMillis()));
}catch(InterruptedException ex){ break;} } }

public void startBall(){//bota una nueva bala ...}

void mueveBalas(){... repaint();}

public void keyPressed( KeyEvent LPres )//ESTO TIENE PROBLEMAS{
//me explico esto que sigue: si se presiona "v" o "p" este queda registrado en Listener como se ve en KeyReleased entonces con las flechas se modifica las direcciones de disparo
switch (LPres.getKeyCode()){
case KeyEvent.VK_LEFT:
if(Listener=="v"){vx0--;} if(Listener=="p"){x0--;} break;
case KeyEvent.VK_RIGHT:
if(Listener=="v"){vx0++;} if(Listener=="p"){x0++;} break;
case KeyEvent.VK_UP:
if(Listener=="v"){vy0--;} if(Listener=="p"){y0--;} break;
case KeyEvent.VK_DOWN:
if(Listener=="v"){vy0++;} if(Listener=="p"){y0++;} break;} }

public void keyReleased( KeyEvent LPres )//ESTO TAMBIEN
{
switch (LPres.getKeyCode()){
case KeyEvent.VK_V:
Listener="v"; Listen=" Velocidad seleccionado"; break;
case KeyEvent.VK_P:
Listener="p"; Listen=" Posicion seleccionado"; break;
....//lo siguiente es lo mismo que keyPressed}

public void keyTyped( KeyEvent LPres )
{
}
}


Siempre pensé que programar en Java era igual en Windows y en Linux por su filosofía, y mas si se usaban NetBeans en los 2, pero veo que no es así con esto, ¿que debería tomar en cuenta al usar alguno de los 2?

Muchas gracias