Java-апплет - перемещение мяча по экрану - PullRequest
0 голосов
/ 16 января 2012

Хорошо, как мне переместить с клавиатуры мяч с помощью апплета?

Пока у меня есть этот код, который ничего не делает.

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class KeyboardGame extends Applet implements KeyListener
{

    private static final long serialVersionUID = 1L;
    private static boolean keyboadrRightPressed = false;

    public void init()
    {
         addKeyListener(this);
    }

    public void keyPressed(KeyEvent e) 
    {
        int keyCode = e.getKeyCode();
        if(keyCode == KeyEvent.VK_RIGHT)
        {
            keyboadrRightPressed = true;
        }
        else
        {
            keyboadrRightPressed = false;
        }
    }

    public void keyReleased(KeyEvent e) {

    }

    public void keyTyped(KeyEvent e) {
    }

    public void paint(Graphics g)
    {
        g.fillOval(20,20,20,20);
        g.drawString("String :"+keyboadrRightPressed,20,30);
    }

}

А также я должен понять, как это работает. Я не понимаю, почему мой слушатель действия не работает, мне нужно

while(true)

или Нить?

1 Ответ

2 голосов
/ 16 января 2012

Ваш слушатель действия может действительно работать нормально, но вам нужно перекрасить апплет при нажатии клавиши, чтобы ваша строка действительно появилась. Попробуйте изменить ключ. Нажмите на это:

public void keyPressed(KeyEvent e) 
{
    int keyCode = e.getKeyCode();
    if(keyCode == KeyEvent.VK_RIGHT)
    {
        keyboadrRightPressed = true;
    }
    else
    {
        keyboadrRightPressed = false;
    }
    repaint();
}

На самом деле перемещение мяча будет зависеть от того, как вы хотите, чтобы шарик действительно двигался. Я предполагаю, что вы хотите, чтобы он продолжал двигаться вправо, пока нажата клавиша, поэтому я хотел бы реализовать таймер или какую-либо другую форму потока, который каждые 0,25 секунды (или сколько вам нужно) проверяет keyboardRightPressed и будет переместите шар вправо, если это правда. Затем в части keyReleased вашего кода вы также должны добавить логику, чтобы установить для keysRightPressed значение false, когда вы отпустите клавишу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...