java - KeyAdapter lytteren virker i Windows, ikke på Mac

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skabte et simpelt Nibbles (Snakes) spil og alt fungerer perfekt.


Men når jeg kopierer alt over til min Mac (udvikler på en pc) og compiler de samme java filer, svarer KeyAdapter hændelseslytteren for at flytte min slange ikke rundt.


Jeg er ikke sikker på hvad der er galt.


her er snippet, men hvis nogen ville være villig til at kigge på hele programmet, kunne jeg sende det privat. TAKK!


getThis().addKeyListener(new KeyAdapter()  {
        public void keyPressed(KeyEvent event) {                    
            if(event.getKeyCode() == KeyEvent.VK\_UP)
                if(!glass.game.getDirection().equals("D"))
                    glass.game.setDirection("U");

            if(event.getKeyCode() == KeyEvent.VK\_DOWN)
                if(!glass.game.getDirection().equals("U"))
                    glass.game.setDirection("D");

            if(event.getKeyCode() == KeyEvent.VK\_LEFT)
                if(!glass.game.getDirection().equals("R"))
                    glass.game.setDirection("L");

            if(event.getKeyCode() == KeyEvent.VK\_RIGHT)
                if(!glass.game.getDirection().equals("L"))
                    glass.game.setDirection("R");
          }
});   

Bedste reference


brug KeyBindings i stedet for KeyListener, KeyListener er ikke udpeget til at lytte KeyEvents i Swing JComponents, denne lytter til AWT Components, eksempel her