Java 按顺序安排动画

Java 按顺序安排动画,java,swing,scheduling,wait,notify,Java,Swing,Scheduling,Wait,Notify,我正在用骰子和移动的棋子做游戏。我想要的是骰子滚动,然后在骰子滚动完成后,我想要棋子移动。目前,当骰子完成滚动时,骰子对象会告诉棋子开始移动,但是我需要一个控制器来告诉骰子移动,等待它们完成,然后告诉棋子移动。我尝试过使用.wait()和.notify(),但我真的不知道如何使用它们,结果得到了一个InterruptedException。实现这一点的最佳方式是什么 您可能想看看 除了海报上建议的那样,你似乎不能用任何其他的方法来暂停一条线。他使用变量来知道何时运行或暂停。例如: public

我正在用骰子和移动的棋子做游戏。我想要的是骰子滚动,然后在骰子滚动完成后,我想要棋子移动。目前,当骰子完成滚动时,骰子对象会告诉棋子开始移动,但是我需要一个控制器来告诉骰子移动,等待它们完成,然后告诉棋子移动。我尝试过使用.wait()和.notify(),但我真的不知道如何使用它们,结果得到了一个InterruptedException。实现这一点的最佳方式是什么

您可能想看看

除了海报上建议的那样,你似乎不能用任何其他的方法来暂停一条线。他使用变量来知道何时运行或暂停。例如:

public class Game
{
    static Thread controller, dice;
    static boolean dicerunning = false;

    public static void main(String[] args)
    {
        controller = new Thread(new Runnable()
        {
            public void run()
            {
                dicerunning = true;
                dice.start();
                while (dicerunning)
                {
                    //blank
                }

                //tell piece to move here
            }
        });

        dice = new Thread(new Runnable()
        {
            public void run()
            {
                //roll here

                dicerunning = false;
            }
        });

        controller.start();
    }
}

一个用于骰子,另一个用于棋子;在骰子处理程序中,当您确定骰子已完成时,启动计件计时器。本文分析了几个示例。

我认为这取决于您如何实现应用程序(听起来像MVC)。我的建议:控制器调用roll方法,afterwars设置模型(工件)的新位置。您的视图是模型的观察者,每次更改都会更新视图。可供人使用javax.swing.Timer查看。