我四处寻找这个并没有得到明确的答案。我写了一个游戏,它需要暂停,直到用户点击他们决定的按钮,然后继续执行。有没有标准的方法来做到这一点?
我见过类似的问题涉及使用“wait()”和“notify()”,但我不确定是否需要添加更多线程,尤其是因为我没有执行复杂或耗时的代码。
我应该澄清它是棋盘游戏的计算机版本,所以只不过是一个带有一些组件的框架。这是我正在尝试做的一些事情,谢谢大家:
public class TreasureHunterFrame extends javax.swing.JFrame
{
public TreasureHunterFrame()
{
initComponents();
startNewGame();
}
private void startNewGame()
{
...
// User asked to click button while this method is running
synchronized (this) // wait until Stay of Leave button is clicked
{
try
{
while (!userHasMadeDecision)
this.wait();
}
catch (InterruptedException ie)
{
}
}
....
}
private void userStayButtonActionPerformed(java.awt.event.ActionEvent evt)
{
userHasMadeDecision = true;
userLeaving = false;
synchronized (this)
{
notifyAll();
}
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TreasureHunterFrame().setVisible(true);
}
});
}
}