Java KeyListener con un objeto en movimiento

Estoy tratando de incorporar Java KeyListener a mi objeto en movimiento con las flechas izquierda / derecha que afectan las coordenadas del eje x (xSpeed) y las flechas arriba / abajo que afectan el eje y (ySpeed). Simplemente no puedo conectar el objeto y el KeyListener por alguna razón. ¿Ayudame por favor? ¡Gracias!

    import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;

public class Action
{
    private static final int GRAVITY = 1;
    private int ballDegradation = 8;
    private Ellipse2D.Double circle;
    private Color color;
    private int diameter;
    private int xPosition;
    private int yPosition;
    private final int groundPosition; 
    private final int topPosition;
    private final int leftSidePosition;
    private final int rightSidePosition;
    private Canvas canvas;
    private int ySpeed = -1;  
    private int xSpeed = 8;
    public Action(int xPos, int yPos, int ballDiameter, Color ballColor,
    int groundPos, int topPos, int leftSidePos, int rightSidePos, Canvas drawingCanvas)
    {
        xPosition = xPos;
        yPosition = yPos;
        color = ballColor;
        diameter = ballDiameter;
        groundPosition = groundPos;
        topPosition = topPos;
        leftSidePosition = leftSidePos;
        rightSidePosition = rightSidePos;
        canvas = drawingCanvas;
    }
    public void draw()
    {
        canvas.setForegroundColor(color);
        canvas.fillCircle(xPosition, yPosition, diameter);
    }
    public void erase()
    {
        canvas.eraseCircle(xPosition, yPosition, diameter);
    }    
    public void move()
    {
        erase();
        ySpeed += GRAVITY;
        yPosition += ySpeed;
        xPosition += xSpeed;
        if(yPosition >= (groundPosition - diameter) && ySpeed > 0) 
        {
            yPosition = (int)(groundPosition - diameter);
            ySpeed = -ySpeed + ballDegradation; 
        }
        if(yPosition <= topPosition && ySpeed < 0)
        {
            yPosition = (int)topPosition;
            ySpeed = -ySpeed + ballDegradation;
        }
        if(xPosition <= leftSidePosition && xSpeed <0)
        {
            xPosition = (int)leftSidePosition;
            xSpeed = -xSpeed + ballDegradation;
        }
        if(xPosition >= (rightSidePosition - diameter) && xSpeed > 0) 
        {
            xPosition = (int)(rightSidePosition - diameter);
            xSpeed = -xSpeed + ballDegradation;
        }
        draw();
    }
        public void keyPressed(KeyEvent e) {
            int keyCode = e.getKeyCode();
            switch( keyCode ) { 
        case KeyEvent.VK_UP:
            ySpeed = -ySpeed --;
            break;
        case KeyEvent.VK_DOWN:
            ySpeed = -ySpeed ++;
            break;
        case KeyEvent.VK_LEFT:
            xSpeed = xSpeed --;
            break;
        case KeyEvent.VK_RIGHT :
            xSpeed = xSpeed ++;
            break;
     }
    } 
    }
Respuesta 1

Utilizando aplicaciones web Java (JSP / Servlets, sin EJB), ¿cuál es el mejor enfoque para autenticar a un usuario y autorizar sus acciones, sin utilizar HttpSession? NB La razón de esto ...

Cuando se intenta abrir una sesión de Hibernate, la parte del código que inicializa la nueva configuración de Hibernate se rompe con la excepción "Service jboss-as tiene una dependencia circular". Llamando ...

Método 1: InetAddress addr = InetAddress.getByName ("192.168.0.101"); int puerto = 18250; Socket socket = nuevo Socket (addr, puerto); Método 2: Socket socket = new Socket ("192.168.0.101", 18250);

¿Puedo usar CSS u otras tecnologías web en una aplicación de escritorio Java por cualquier medio? Nota: sé que como los utilicé son recursos basados ​​en la web, pero quiero saber cómo se pueden usar en un escritorio Java ...