elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema KeyListener java Linuix-->Windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema KeyListener java Linuix-->Windows  (Leído 6,020 veces)
smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Problema KeyListener java Linuix-->Windows
« en: 2 Octubre 2009, 15:13 pm »

Hola, tengo un problema programando el java, el problema es que tengo un frame con un keylistener que en principio funciona, lo bueno viene que cuando lo paso a linux el keylistener no funciona, todo el demas codigo si pero el keylistener no. tambien me he dado cuenta de que en windows es KeyListener(KeyEvent e) y en linux KeyListener(KeyEvent arg0)

... alguien me puede ayudar?

pd: luego cuelgo el codigo que estoy en la uni.


En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Problema KeyListener java Linuix-->Windows
« Respuesta #1 en: 2 Octubre 2009, 15:40 pm »

Deberia funcionar igual.

Una pregunta para ti

KeyListener(KeyEvent e)
KeyListener(KeyEvent arg0)

¿Existe una diferencia grande?
R:No, las funciones son iguales lo unico que cambia es el nombre de la variable.

Perfectamente puedo colocar
KeyListener(KeyEvent aadsadadsjakjrorsajfasjfadjasa)
lo unico malo de usar esa variable
aadsadadsjakjrorsajfasjfadjasa.getSource() :P

Sobre que no funciona en linux mmm hiciste addKeyListener al frame correspondiente?


En línea

smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Re: Problema KeyListener java Linuix-->Windows
« Respuesta #2 en: 2 Octubre 2009, 15:50 pm »

ya se que solo cambia el nombre de la variable, pero es lo unico que se me ocurria XDD

tengo un frame con un canvas dentro, tal vez sea porque le he agregado el keylistener al frame i no al canvas... puede ser? porque en windows funciona pero si clicko dentro de la ventana deja de funcionar :S

gracias por la rapidez amigo ;)

pd: si que hice addKeyListener
« Última modificación: 2 Octubre 2009, 15:53 pm por smasher666 » En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Problema KeyListener java Linuix-->Windows
« Respuesta #3 en: 2 Octubre 2009, 17:57 pm »

Dejanos ver tú código o parte de el, porque es raro que te funcione en un sistema operativo y en otro no.

¿En los dos  utilizas la JRE de sun?
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Re: Problema KeyListener java Linuix-->Windows
« Respuesta #4 en: 5 Octubre 2009, 18:07 pm »

perdonen por tardar, ya resolvi el problema, tenia la parte que crea al keyListener comentado...


pero sigo teniendo otro problema, cuando lo ejecuto, a veces va i a veces no va, es decir, lo ejecuto i sin modificar nada, a la tercera funciona y cuando funciona, si cliko encima de la ventana deja de ir el KeyListener, alguien me ayuda?

os dejo la parte del codigo donde creo y añado el keyListener:

Código:
package marcianos;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;

/**
 *
 * @author srgank
 */
public class Juego {

    private int ANCHO = 800;
    private int ALTO = 600;
    private JFrame ventana;
    private Player player;

    public Juego() {

        ventana = new JFrame();


        ventana.setBounds(0, 0, ALTO, ANCHO);
        ventana.setVisible(true);
        ventana.setDefaultLookAndFeelDecorated(true);


        player = new Player(ventana);

        Grafico grafico = new Grafico(player);

        ventana.add(grafico);


        añadirKeyListener(ventana);






        grafico.run();


    }

    public void añadirKeyListener(JFrame frame) {



        KeyListener key3 = new KeyListener() {

            public void keyTyped(KeyEvent arg0) {
                if (arg0.getKeyCode() == arg0.VK_LEFT) {
                    player.setDireccion("izquierda");

                } else if (arg0.getKeyCode() == arg0.VK_RIGHT) {
                    player.setDireccion("derecha");
                }
                if (arg0.getKeyCode() == arg0.VK_SPACE) {
                    player.setDisparo(true);

                    System.out.println("Space");

                }
            }

            public void keyPressed(KeyEvent arg0) {
                if (arg0.getKeyCode() == arg0.VK_LEFT) {
                    player.setDireccion("izquierda");

                } else if (arg0.getKeyCode() == arg0.VK_RIGHT) {
                    player.setDireccion("derecha");
                }

                if (arg0.getKeyCode() == arg0.VK_SPACE) {
                    player.setDisparo(true);
                }
            }

            public void keyReleased(KeyEvent arg0) {
                player.setDireccion("nulo");

                if (arg0.getKeyCode() == arg0.VK_SPACE) {
                    player.setDisparo(true);

                    System.out.println("Space");

                }


            }
        };





        frame.addKeyListener(key3);


    }

    class Grafico extends Canvas implements Runnable {

        private int ANCHO = 800;
        private int ALTO = 600;
        private Player player;

        public Grafico(Player player) {

            setBounds(0, 0, ALTO, ANCHO);
            setVisible(true);
            this.player = player;






    }

        @Override
    public void paint(Graphics g){
     
    player.mostrarPlayer(g);
    player.disparar(g);
   


   
    }

    public void run() {
        while(true){
       
            repaint();
            try {
                Thread.sleep(25);
            } catch (InterruptedException ex) {
                Logger.getLogger(Grafico.class.getName()).log(Level.SEVERE, null, ex);
            }

        }




    }


}
}
« Última modificación: 5 Octubre 2009, 20:23 pm por smasher666 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al abrir Minecraft (windows xp) java
Juegos y Consolas
gamer12 0 3,460 Último mensaje 28 Julio 2011, 12:12 pm
por gamer12
KeyListener Problema sin modificar el código en ocasiones va y viene !!!
Java
lluvplay 1 2,870 Último mensaje 19 Abril 2012, 18:12 pm
por lluvplay
KeyListener Jpanel
Java
mapers 1 1,708 Último mensaje 28 Abril 2014, 01:26 am
por ThinkByYourself
Uso del KeyListener
Java
m@o_614 0 1,692 Último mensaje 27 Agosto 2015, 22:50 pm
por m@o_614
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines