0

So i am trying to move the ball using arrow keys and Key event ,but the ball doesn't move.If anyone can help i would gladly appreciate it ,and keep in mind that i am a beginner in java.Here is the code:

package prozor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.KeyEvent;

@SuppressWarnings("serial")
public class prozor extends JPanel {
    public int x = 0;
    public int y = 0;
    public boolean up,down,left,right;
    public int vx,vy;

    public void update(){
        vx=0;
        vy=0;
        if(up)vy=-5;
        if(down)vy=5;
        if(right)vy=-5;
        if(left)vy=5;
    }
    public void keyPressed(KeyEvent e){
        switch(e.getKeyCode()) {
        case KeyEvent.VK_DOWN: down = true; break;
        case KeyEvent.VK_UP: up = true; break;
        case KeyEvent.VK_LEFT: left = true; break;
        case KeyEvent.VK_RIGHT: right = true; break;
        }
        update();
    }
    public void moveBall() {
        x +=vx;
        y +=vy;
    }
    public void keyReleased(KeyEvent e){
        switch(e.getKeyCode()) {
        case KeyEvent.VK_DOWN: down = false; break;
        case KeyEvent.VK_UP: up = false; break;
        case KeyEvent.VK_LEFT: left = false; break;
        case KeyEvent.VK_RIGHT: right = false; break;
        }
        update();
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.fillOval(x, y, 20, 20);
    }

    public static void main(String[] args) throws InterruptedException {
        JFrame frame = new JFrame("Sample Frame");
        prozor game = new prozor();
        frame.add(game);
        frame.setSize(300, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        while (true) {
            game.moveBall();
            game.repaint();
            Thread.sleep(10);
        }
    }
}
khelwood
  • 55,782
  • 14
  • 81
  • 108

0 Answers0