Kezdőoldal » Számítástechnika » Programozás » Mi a probléma itt, a keylisten...

Hecvid kérdése:

Mi a probléma itt, a keylistener-emmel? (JAVA)

Figyelt kérdés

Elkezdtem írni egy programot.

Még csak annyit szeretnék tőle, hogy legyen egy kép, ami a nyilak lenyomásakor "arréb" megy/ugrik, de mintha nem érzékelné a gombokat, egyáltalán.

A program elindul, és nincs hiba üzenet.

Mi ebben a kódban a probléma:



Menu.java:


class Menu {

public static void main(String[] args) {

start go = new start();

go.main();

}

}


class start {


void main() {

mozgas rajta = new mozgas();

rajta.menet();

}


}


(Menu.java vége)



Mozgas.java:


import java.applet.Applet;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;


class mozgas

extends Applet

implements KeyListener{


JFrame keret;

palya field;

int irany;

int x=33;

int y=33;



void menet() {


keret = new JFrame("Snake");

field = new palya();


addKeyListener(this);

setFocusable(true);

setFocusTraversalKeysEnabled(false);


keret.getContentPane().add(BorderLayout.CENTER, field);

keret.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

keret.setSize(1200,678);

keret.setVisible(true);

}



@Override

public void keyPressed(KeyEvent e){

irany = e.getKeyCode();

if (e.getKeyCode() == KeyEvent.VK_RIGHT) {x = x+32;}


switch (irany) {

case KeyEvent.VK_LEFT: //balra

y = y-32;

break;


case KeyEvent.VK_UP: //fel

x = x-32;

break;


case KeyEvent.VK_RIGHT: //jobbra

y = y+32;

break;


case KeyEvent.VK_DOWN: //le

x = x+32;

break;


default: x = x+32;

}

x=x+32;

field.repaint();

}



@Override

public void keyTyped(KeyEvent e){


}



@Override

public void keyReleased(KeyEvent e){


}



class palya extends JPanel {


@Override

public void paintComponent (Graphics g) {

super.paintComponent(g);


Color c = new Color(130,130,130);

g.setColor(c);

g.fillRect(8,8,624,624);


c = new Color(238,238,238);

g.setColor(Color.WHITE);

g.fillRect(30,30,578,578);


Image kep = new ImageIcon("kocka.png").getImage();

g.drawImage(kep,x,y,this);

}

}



}


(Mozgas.java vége)



Tudom, hogy vannak benne fölös részek, de egy részük azért, mert későbbre kell, egy része, meg azért, mert próbáltam életre hívni, bármilyen fajta mozgást (e miatt vannak értelmetlennek tűnő sorok, de ezektől, max furán kéne mozognia).

A rajzolással elvileg semmi gond, mert amikor csak egy ciklussal változtatta az x/y értéket, akkor mozgott rendesen.


A kérdés, hogy miért nem érzékeli a gombnyomást, vagy miért nem mozog egyáltalán?


Előre is köszönöm.



2015. márc. 1. 13:15
1 2
 11/11 A kérdező kommentje:

Hát köszönöm szépen, a változatatások előtt, valóban működik így, szóval köszönöm szépen, s sok fáradozást :)


A setterekkel valamiért nincs barátságban, de a fő, hogy valahogy megy.


KÖSZÖNÖM!!! :)

2015. márc. 2. 18:48
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!