私はこれを検索しましたが、明確な答えを得ることができませんでした。ユーザーがボタンをクリックして決定するまで一時停止し、実行を継続する必要があるゲームを作成しました。これを行う標準的な方法はありますか?
「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);
}
});
}
}