GUI渲染的模拟

时间:2012-11-10 14:21:56

标签: java multithreading swing simulation

我目前正在进行树搜索的模拟,我正在尝试设计一个gui来显示搜索树。我正在使用Observer设计模式,但似乎遇到了问题,因为gui是一个不同的执行线程,搜索似乎在gui绘制之前完成,以说明模拟。无论如何还有 搜索和gui显示搜索,因为它演变可以同步,以便gui 它反映了绘画时的搜索状态。

1 个答案:

答案 0 :(得分:1)

首先你要注意人类很慢:)我会说一步一步的方法更合适,所以你需要提供以下功能:

  1. 前进
  2. 退一步
  3. 开始/停止执行
  4. 灵活的模拟速度
  5. 让我们使用一些动画图像作为示例(source):

    enter image description here

    这个例子很简单,但你可能会注意到你无法控制执行的事实有点烦人。无论如何,为了提供良好的可视化,您必须从处理循环设计开始。这似乎很简单:

    1. 更新树
    2. 渲染
    3. 等待一段时间让用户注意到差异
    4. 它看起来像是一个简单的游戏循环吗?

      enter image description here

      另请参阅详情here

      我建议如下:

      1. 定义用于保存树状态的模型
      2. 使用Command pattern
      3. 实现更新模型(树)的逻辑
      4. 实施命令队列和命令执行器
      5. 让视图接收模型更新事件
      6. enter image description here

        因此,每次用户按下Next时,您将创建一个命令(或多个命令)并将其提交给模型。执行完所有命令后,模型应该刷新视图。用户将有足够的时间来了解更改。也可以使用自动模式(您将生成具有指定延迟的命令)