Hallo zusammen,
ich bin gerade dabei den Umgang mit dem KeyListener zu üben und bin auf ein
Problem gestoßen, wo ich nicht erkenne wo der Fehler liegt.
Ich habe bereits ein Fenster (JFrame) und wollte ein Icon in Verbindung mit JLabel ins Fenster laden.
Es funktioniert soweit alles bis auf das Laden des Bildes.
Vielleicht erkennt jmd einen Fehler Danke.
Mein Code:
ich bin gerade dabei den Umgang mit dem KeyListener zu üben und bin auf ein
Problem gestoßen, wo ich nicht erkenne wo der Fehler liegt.
Ich habe bereits ein Fenster (JFrame) und wollte ein Icon in Verbindung mit JLabel ins Fenster laden.
Es funktioniert soweit alles bis auf das Laden des Bildes.
Vielleicht erkennt jmd einen Fehler Danke.
Mein Code:
Java:
package keyListenerVersuch;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame implements KeyListener{
JLabel label;
ImageIcon icon;
MyFrame(){
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(600,600);
this.setLayout(null);
this.addKeyListener(this);
label = new JLabel();
icon = new ImageIcon("kanone.png");
label.setIcon(icon);
this.getContentPane().setBackground(Color.black);
label.setBounds(0, 0, 120, 120);
// label.setBackground(Color.blue);
// label.setOpaque(true);
this.add(label);
this.setVisible(true);
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
switch(e.getKeyChar()) {
case 'l' : label.setLocation(label.getX()-10, label.getY()); //left
break;
case 'u': label.setLocation(label.getX(), label.getY()-10); //up
break;
case 'd': label.setLocation(label.getX(), label.getY()+10); //down
break;
case 'r': label.setLocation(label.getX()+10, label.getY()); //right
break;
}
}
//Main
public static void main(String[] args) {
MyFrame f = new MyFrame();
}
}