Hallo an Alle,
ich probiere gerade mit Threads und ActionListenern rum.
Ich habe auf einer Zeichenfläche ein Kreis gezeichnet. Klicke ich aufs Panel so gibt das Programm auf der Konsole die aktuelle Mausposition aus.
Funktioniert.
Jetzt möchte ich mit Hilfe der Tasten den Kreis bewegen. Den KeyListener habe ich auf das Panel angesetzt, aber er reagiert nicht.
Könntet Ihr mal schauen woran es liegt?
Danke & Gruß,
myjday
Klasse Oberflaeche
Hier die Klasse ZeichenPanel
ich probiere gerade mit Threads und ActionListenern rum.
Ich habe auf einer Zeichenfläche ein Kreis gezeichnet. Klicke ich aufs Panel so gibt das Programm auf der Konsole die aktuelle Mausposition aus.
Funktioniert.
Jetzt möchte ich mit Hilfe der Tasten den Kreis bewegen. Den KeyListener habe ich auf das Panel angesetzt, aber er reagiert nicht.
Könntet Ihr mal schauen woran es liegt?
Danke & Gruß,
myjday
Klasse Oberflaeche
Java:
public class Oberflaeche extends JFrame {
static ZeichenPanel p;
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
JFrame f = new JFrame("Teste Deine Reaktion");
f.setSize(new Dimension(500, 500));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
p = new ZeichenPanel();
p.setSize(new Dimension(400, 400));
p.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Spielfeld betreten");
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Mausposition: " + arg0.getX()
+ ", " + arg0.getY());
}
});
p.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent bewege) {
System.out.println(bewege.getKeyCode());
System.out.println("Hallo Du da");
}
@Override
public void keyReleased(KeyEvent bewege) {
System.out.println(bewege.getKeyCode());
System.out.println("Hallo Du da");
}
@Override
public void keyPressed(KeyEvent bewege) {
System.out.println("Hallo Du da");
}
});
f.add(p);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
};
EventQueue.invokeLater(r);
}
}
Hier die Klasse ZeichenPanel
Java:
public class ZeichenPanel extends JPanel{
public int x;
public int y;
public ZeichenPanel(){
setPreferredSize(new Dimension(500,500));
this.x = 200;
this.y = 200;
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(Color.RED);
g2.fillOval(x, y, 40, 40);
}
}