2016-04-06 17 views
1

Ich habe versucht, einen Ball zu erstellen, der sich bewegt, wenn ich auf die Pfeiltasten klicke. Wenn ich jedoch auf die Pfeiltasten klicke, reagiert der Ball nicht. Ich habe versucht, einen Ball zu erstellen, der sich bewegt, wenn ich auf die Pfeiltasten klicke. Wenn ich jedoch auf die Pfeiltasten klicke, reagiert der Ball nicht. Hier ist mein Code:Probleme beim Verschieben von Objekten in Java

package ball.main; 

import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 

import javax.swing.JPanel; 
import javax.swing.Timer; 

public class Ball extends JPanel implements ActionListener, KeyListener { 

    Timer t = new Timer(5, this); 

    int x = 0; 
    int y = 0; 
    int velX; 
    int velY; 

    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     g.setColor(Color.GREEN); 
     g.fillOval(x, y, 20, 20); 
     t.start(); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 

     if (x < 0) { 
      x = 0; 
     } 
     if (x > 580) { 
      x = 580; 
     } 
     if (y < 0) { 
      y = 0; 
     } 
     if (y > 580) { 
      y = 580; 
     } 

     x += velX; 
     x += velY; 
     repaint(); 

    } 

    @Override 
    public void keyPressed(KeyEvent e) { 
     int code = e.getKeyCode(); 

     if (code == KeyEvent.VK_UP) { 
      velY = -1; 
     } 
     if (code == KeyEvent.VK_DOWN) { 
      velY = 1; 
     } 
     if (code == KeyEvent.VK_RIGHT) { 
      velX = 1; 
     } 
     if (code == KeyEvent.VK_LEFT) { 
      velX = -1; 
     } 

    } 

    @Override 
    public void keyReleased(KeyEvent e) { 
     velX = 0; 
     velY = 0; 
    } 

    @Override 
    public void keyTyped(KeyEvent e) { 
     // TODO Auto-generated method stub 

    } 


} 

Was ist falsch mit meinem Code?

+2

zu verwenden Beginnen Sie nicht immer ein Timer-Objekt in einer Malweise. Die Methode paintComponent() wird nur zum Malen verwendet. – camickr

Antwort

Verwandte Themen