我有一个Swing程序,它使用Swing定时器执行2D动画。每按一下按钮,就会创建几个定时器,为几个不同的组件创建动画 - 其中一些定时器离开屏幕,另一些则移动。 (我不会提前知道每个按钮点击时需要执行哪些动画,但是在运行时区分动画的两种“类型”并不是问题 - 它们是从不同的方法启动的,因此它很容易想象将它们添加到两个不同的“队列” - 一个传出项目队列和一个传入项目队列。完成后,我可以实现调用为顺序执行分组动画
的基本策略。我直觉地启发式地思考 - 我还没有想到如何在实践中实现它,实际上这些“队列”是什么,以及什么类会保存并稍后执行它们?可能是实现Runnable的一个,创建第二个线程可以通过更严格的控制来执行动画如何继续?还是事件派发线程给我充分的控制:有没有办法使用SwingUtilities.invokeAndWait()
(或类似的东西)收集所有要执行的动画,同时将某个类的优先级分配给某个类,或者以某种方式标记该优先级?