Mi a probléma itt, a keylistener-emmel? (JAVA)
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.
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!!! :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!