0

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

「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);
            }
        });
    }
}
4

0 に答える 0