java - 动画 Swingworker 线程和计时器

标签 java multithreading swing animation graph

我必须为两个图表制作动画。两张图都是相关的。
一张图显示颜色制图,另一张图显示曲线。 我从文件中获取了图表的值。

所以我必须做三件事才能使图表动画化:

  • 读取文件中的值,构建一些对象数组来保存值
  • 根据读取的值逐步绘制曲线
  • 根据读取的值在其他图表中绘制一条线

其中每项任务必须每 x 秒重复一次。 目前我正在使用 Swing 计时器和扩展 SwingWorker 的类来完成此操作。在 doInBackground 方法中,我读取文件,循环遍历值来构建我的对象并填充一个数组。

在process方法中,我使用一些数组来构建曲线,在done方法中,我绘制线条。但结果并不是我想要的。 曲线拉得太快了。例如,如果我每 2 秒执行一次计时器,那么曲线必须花费 2 秒从图表的一端到达另一端。然后我必须在另一张图中画一条线。目前,每两秒绘制一次曲线。

如果可能的话,我怎样才能在不同的线程中组织它?

最佳答案

我建议看看 Trident animation library 。它将为您简化很多工作。

关于java - 动画 Swingworker 线程和计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5913917/

相关文章:

java - 尽管 AndroidManifest.xml 中提到了,为什么我的 Android 应用程序无法获得某些权限

c++ - 让 QtConcurrent 中的 QTimer 正常工作

java - ExecutorService、Future、Threads 当所有 Runnables 必须完成时出现 Actives

java线程阻塞

java - JComboxBox setSelectedItem

java - 对象未解析为局部变量 (Java)

Java 读取带有额外空格和 CRLF 的文本文件

Java : Json with duplicate keys to map using Jackson

java - JComboBox - 如何呈现时间值的名称

java - 在手动拉伸(stretch)框架之前,文本框不会显示在框架上