2014-10-16 145 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似乎沒有做任何事情。