有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java计时框架Animator类查询

我正在制作一个动画来表示数组操作。到目前为止,我已经在一个对象上构建了一个动画,该对象表示为一个已删除的绘制矩形(索引),其余的右侧索引将左移以占据正确的索引。对于每个要移动的矩形索引,我为该特定对象创建一个动画

我希望能够启动动画,以便在第一个索引完成后立即移动下一个索引。我尝试了一个while循环来检查动画是否仍在运行,但这实际上阻止了当前动画的显示,因为等待循环很忙。在查看了API中的Animator类之后,我找到了一个相关的方法:

无效等待() 使当前线程自行或由于调用stop()或cancel()而等待动画完成,除非线程被中断

在这种情况下,当前线程是什么?我知道计时框架运行它自己的计时线程,那么这就是它所指的吗

我应该如何编写另一段代码,用这个animator方法构建下一个索引动画

谢谢


共 (2) 个答案

  1. # 1 楼答案

    如果您使用的是Timing Framework,版本1有一个TimingTarget接口,可以连接到Animator实例

    这将提供有关Animator状态的事件通知

    除了提供“滴答”回调外,它还提供beginend

    您可以将一个Animator链放在一起,在调用end时开始下一个

    不幸的是,我没有时间更新我的库以使用更新的版本,所以实际的接口和方法可能已经改变了

  2. # 2 楼答案

    由于这是一个Swing GUI,我认为为动画使用Swing计时器会更好,因为这样,所有动画都将在Swing事件线程上完成,而不会限制和冻结这个重要线程。您可以通过为动画代码添加ChangeListener或PropertyChangeListener支持,向侦听器附加某种通知,以查看动画何时完成