最新情况:Set<Integer>SwingUtilities.invokeLater();
private Set<Integer> keysDown = Collections.synchronizedSet(new HashSet<Integer>());public void keyPressed(KeyEvent e) {
keysDown.add(e.getKeyCode());}public void keyReleased(KeyEvent e) {
keysDown.remove(e.getKeyCode());}public void updatePaddlePositions(){
if (keysDown.contains(KeyEvent.VK_W))
paddleOne.move(-PADDLE_MOVE_INCREMENT);
if (keysDown.contains(KeyEvent.VK_S))
paddleOne.move(PADDLE_MOVE_INCREMENT);
if (keysDown.contains(KeyEvent.VK_UP))
paddleTwo.move(-PADDLE_MOVE_INCREMENT);
if (keysDown.contains(KeyEvent.VK_DOWN))
paddleTwo.move(PADDLE_MOVE_INCREMENT);
try {
Thread.sleep(DELAY);
} catch (InterruptedException e) {
System.out.println("You Interrupted the game!");
}
canvas.repaint();}paintComponentcanvas
public void paintComponent(Graphics g) {
super.paintComponent(g);
paddleOne.paint(g);
paddleTwo.paint(g);
updatePaddlePositions(); // Does this need to be SwingUtilities.invokeLater(this)?
// And should updatePaddlePositions() be run() as a result?}paintpaddleOnepaddleTwo
public void paint(Graphics g)
{
g.setColor(Color.BLACK);
g.fillRect(x, y, PADDLE_WIDTH, PADDLE_HEIGHT);
}Collections.synchronizedSet(new HashSet<Integer>())
更新2:
HashSet<Integer>Set<Integer>Collections.synchronizedSet(...)
长风秋雁
牧羊人nacy
蛊毒传说
随时随地看视频慕课网APP