2014-10-16 89 views
0

我正在构建一个简单的俄罗斯方块游戏,我在我的初始JPanel中有3个按钮。当我按下开始游戏按钮时,游戏将在后台启动,但我的游戏屏幕不显示。Java Swing JPanel

我的Tetris类扩展了JFrame,我有两个面板。一个用于3个按钮,另一个用于实际游戏。当我按下开始游戏按钮时,它应该删除按钮并显示游戏JPanel。

有什么建议吗?谢谢。

startButton.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent e) { 
        System.out.println("Start button pressed"); 
        Tetris.this.startGame(); 
       } 
      }); 

这里是startGame()的代码;董事会对象还扩展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(); 
+1

我建议你使用javafx – Emrage 2014-10-16 15:49:47

+0

可能是你的'updateGame();'调用,如果在UI中什么都不做,我会建议在单独的线程中启动该调用。 – PeterK 2014-10-16 16:47:21

回答

0

Container.remove(面板)

这是你要找的 什么此外,tempBoard似乎没有做任何事情。