Java中ShowOptionDialog的替代方案
所以现在我有Java中ShowOptionDialog的替代方案,java,Java,所以现在我有 public boolean start(){ boolean validInput = false; String input = null; int nextMove; Object[] options = { "Move Hek", "Move Back", "Exit Game" }; int newEnemyAtMoveNo = 0; do{
public boolean start(){
boolean validInput = false;
String input = null;
int nextMove;
Object[] options = { "Move Hek", "Move Back", "Exit Game" };
int newEnemyAtMoveNo = 0;
do{
displayCharPositions();
if(!checkOgreAlive()){
System.out.println("Ogre Dead!!");
JOptionPane.showMessageDialog(null, "Hek Died! \nGame Over!");
return false;
}
input = Array.get(moves, new Random().nextInt(8)).toString();
nextMove = JOptionPane.showOptionDialog(null, "What will you do next? " + Ogre , "Your move",
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,
null, options, options[0]);
if(nextMove == JOptionPane.YES_OPTION)
{
validInput = moveCharacter(Ogre,input);
if(!validInput){
if(!input.equals("E"))
System.out.println("Invalid move! Try Again");
}
else {
moveNo ++;
System.out.println("Move No.: " + (moveNo+1));
moveEachEnemy();
if(moveNo % 3 == 0)
newEnemyAtMoveNo = new Random().nextInt(3);
if(moveNo % 3 == newEnemyAtMoveNo)
enterNewEnemy();
}}
}while(nextMove != JOptionPane.CLOSED_OPTION && nextMove != JOptionPane.CANCEL_OPTION);
int saveResult = JOptionPane.showConfirmDialog(null, "Would you like to save the game?", null, JOptionPane.YES_NO_OPTION);
if(saveResult == JOptionPane.YES_OPTION)
return true;
else
return false;
}
是否有弹出框的替代方法,例如,我可以在Gui上放置按钮来替换输入框
但是,如果我没有停止循环的东西(例如showMessageDialog),程序将运行到完成
因此,基本上,我可以拥有与showMessageDialog相同的功能,但Gui上的按钮可以代替弹出的对话框吗?可以,但您需要使用自己的控件定义一个新的
JDialog
或JFrame
,与您以前的fram交互。从当前的JFrame是否不可能?因为它还有其他需要同时访问的控件,我不希望同时打开两个窗口,事实上,你可以做任何你想添加的事情,我想你可以参考SUN/ORACLE的java gui totrial