【发布时间】:2016-08-27 13:42:43
【问题描述】:
我正在尝试使用 JTextArea 作为控制台/输出和 JTextField 作为用户输入来重新创建控制台游戏。由于 GUI 是事件驱动的,我不明白如何阻止代码执行,以等待用户输入,然后再继续对手转向。我能想到的唯一解决方案是 While(userTurn) 和 userTurn 将在 actionlistener 时更改为 false 是否有更好的方法?
我的控制台解决方案
String getInput(String prompt){
String inputLine = null;
console.setTextConsole(prompt + " ");
try{
BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
inputLine = is.readLine();
if(inputLine.length() == 0) return null;
}catch(IOException e){
console.setTextConsole("IOException "+e);
}
return inputLine;
}
我刚刚调用了这个 getInput 方法,然后继续进行对手回合。
我想要完成的是:
- 对手转向
- 游戏等待用户
- 用户在 JtextField 中输入文本并按下回车键
- 游戏执行玩家命令
- 对手再次转向..
【问题讨论】:
-
为什么你问了10个问题,却只接受了一个答案?
-
是两人对战还是单对电脑?
-
事件驱动代码的意思就是,作为事件结果执行的代码。当用户按下 Enter 键时,您执行 just 执行播放器命令的代码。您可以为对手的回合设置另一个按钮,该按钮将执行对手的回合代码。
标签: java swing jtextfield