2014-09-01 60 views
1

在SpaceInvadersApp.gameEnded()(下面顯示),我該如何使用JOptionPane.showInputDialog() 顯示在初始遊戲結束消息框,用戶 誰贏得遊戲中的對話分數大於零(isGameWon方法測試這個)。新的對話框應該通知用戶他們已經取得了高分並且要求他們的高分表的名字。如何使用的JDialog讓輸入

public void gameEnded() { 
    String message; 
    if (game.isGameWon()) { 
     message = "You defeated the alien menace! Congratulations!\n\n" 
       + "Your score was " + game.getScore(); 
    } else { 
     message = "Oh no! The aliens have defeated you."; 
    } 

    JOptionPane.showMessageDialog(this, 
      message, "Game Over", 
      JOptionPane.INFORMATION_MESSAGE); 

    menuItemGamePause.setEnabled(false); 
} 
+1

你似乎在你的第一句回答。你的代碼使用'showMessage',而不是'showInput'。後者返回字符串 – 2014-09-01 02:58:45

+0

我知道JOptionPane.showInputDialog(),但有人可以告訴我如何獲得輸入,如在彈出窗口彈出後彈出的名稱? – Zhauo 2014-09-01 03:00:15

+0

@peeskillet我想要一個額外的彈出窗口,詢問上面代碼彈出後彈出的名稱。 – Zhauo 2014-09-01 03:02:01

回答

3

開始採取看看How to Make Dialogs

但基本上,你可以不喜歡......

if (game.isGameWon()) { 
    message = "You defeated the alien menace! Congratulations!\n\n" 
      + "Your score was " + game.getScore(); 
    String name = JOptionPane.showInputDialog(this, message, "Game Over", JOptionPane.INFORMATION_MESSAGE) 
    if (name != null) { 
     // Save name 
    } 
} else { 
    message = "Oh no! The aliens have defeated you."; 
    JOptionPane.showMessageDialog(this, 
      message, "Game Over", 
      JOptionPane.INFORMATION_MESSAGE); 
} 
+0

謝謝這就是我正在尋找。但是第二行中的JOption是什麼意思? – Zhauo 2014-09-01 03:07:27

+0

Typo ........ P – MadProgrammer 2014-09-01 03:10:37

+0

錯誤字段Component.Name不可見是什麼意思?我沒有看到任何名稱變量? – Zhauo 2014-09-01 03:15:36