В SpaceInvadersApp.gameEnded() (показано ниже), как я могу использовать JOptionPane.showInputDialog(), чтобы отобразить диалог, следующий за диалоговым окном начального игрового сообщения, для пользователей, выигравших игру со счетом больше нуля (метод isGameWon проверяет это), Новое диалоговое окно должно информировать пользователя о том, что они достигли высокого балла и запросят имя для таблицы с высокими баллами.
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);
}
Начнем с изучения способов создания диалоговых окон.
Но в принципе, вы могли бы сделать что-то вроде...
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);
}
showMessage
, а неshowInput
. Последний возвращает String