Ich versuche Java mit einem Buch zu lernen. Ich stehe noch recht am Anfang. Als erstes möchte ich ein kleines Spiel schreiben. Als Spielfigur habe ich einen kleinen Pinguin gezeichnet. Jetzt sollte sich der Pinguin mit den Pfeiltasten bewegen lassen. Leider tut er das nicht. Hier ist mein bisheriger Code:
Vielen Dank für eure Hilfe.
Java:
package JnR;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import JnR.Var;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Color;
public class Spielfeld extends JFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Spielfeld frame = new Spielfeld();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
System.out.println("Spielfeld kann nicht geladen werden!");
}
}
});
}
private JPanel contentPane;
public Spielfeld() {
setTitle("Spielfeld");
setIconImage(Toolkit.getDefaultToolkit().getImage(Spielfeld.class.getResource("/JnR/pingu.png")));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1050, 750);
contentPane = new JPanel();
contentPane.setBackground(new Color(224, 255, 255));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.setVisible(true);
JLabel label = new JLabel("Pingu");
label.setVisible(true);
label.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent label) {
int x = 203;
int y = 575;
if(label.getKeyCode()==KeyEvent.VK_UP) {
y = y-5;
System.out.println("vorwärts");
}
if(label.getKeyCode()==KeyEvent.VK_DOWN) {
y = y+5;
System.out.println("rückwärts");
}
if(label.getKeyCode()==KeyEvent.VK_LEFT) {
x = x-5;
System.out.println("links");
}
if(label.getKeyCode()==KeyEvent.VK_RIGHT) {
x = x+5;
System.out.println("rechts");
}
repaint();
}
});
label.setFocusable(true);
label.requestFocusInWindow();
label.setBounds(203, 575, 50, 80);
label.setIcon(new ImageIcon(Spielfeld.class.getResource("/JnR/pingu.png")));
contentPane.add(label);
}
}
Vielen Dank für eure Hilfe.