1

对于频繁重绘的应用程序,“模型”应如何通知“视图”他们需要重复重绘其​​中一个组件。这:


class AppLogic extends Observable {
  void runAnimation() {
    while (isAnimationRunning) {
      modifyDataStructures();
      setChanged();
      notifyObservers();
      Thread.sleep(25);
    }
  }
}

class View extends JComponent implements Observer { void update(Observable o) { o.getData(); innerPanel.repaint(); } }

对面板进行动画处理似乎是一种糟糕的方式,尤其是在程序运行的大部分时间都在重新绘制动画的情况下。有什么建议么?谢谢。

*忽略线程等明显错误

4

2 回答 2

2

假设您正在构建一种定期更新信息的“仪表板”应用程序,请按照这个答案所说的去做。如果你想要更高级的东西(比如游戏的动画),你需要做更多的工作。查看这篇文章,了解有关 Java 中的游戏编程和动画的一些有趣的花絮。

于 2011-03-10T20:07:26.133 回答
1

与其“运行”业务逻辑,不如在 View 组件中使用 Swing Timer 并要求业务模型自行绘制,例如将当前时间作为参数传递。

于 2011-03-10T19:37:31.607 回答