【发布时间】:2014-10-16 15:48:43
【问题描述】:
我正在构建一个简单的俄罗斯方块游戏,在我最初的 JPanel 中有 3 个按钮。当我按下开始游戏按钮时,游戏在后台开始,但我的游戏画面没有出现。
我的俄罗斯方块类扩展了 JFrame,我有两个面板。一个用于 3 个按钮,一个用于实际游戏。当我按下开始游戏按钮时,它应该会移除按钮并显示游戏 JPanel。
有什么建议吗?谢谢。
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Start button pressed");
Tetris.this.startGame();
}
});
这是 startGame() 的代码; board 对象也扩展了 JPanel
public void startGame(){
remove(panel);
board = new Board();
board.repaint();
tempBoard = new Board();
board.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == leftKey && canMoveLeft()){
moveLeft();
}
if(keyCode == rightKey && canMoveRight()){
moveRight();
}
if(keyCode == downKey && canMoveDown()){
sleepTime = 50;
}
}
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == downKey && canMoveDown()){
sleepTime = 300;
}
}
});
board.setFocusable(true);
add(board,BorderLayout.CENTER);
pack();
setVisible(true);
updateGame();
【问题讨论】:
-
我推荐你使用 javafx
-
可能是您的
updateGame();调用,如果这在 UI 中没有任何作用,我建议在单独的线程中启动该调用。