小弟最近写了一个java 2d的动画 可是怎么改都只能见到最开始和最终的画面,翻了好多书,搜索了好多网站 都没把问题解决,由于代码较长 有哪位高手能帮忙看看 的 我可以把代码发给他 O(∩_∩)O谢谢

解决方案 »

  1.   

    我猜是Thread的问题.用Java2D画东西如果想看到具体过程的话需要把这个绘画部分放到一个单独的Thread里。因为Java运行时有一个Main Thread,所用的进程都会默认在这个Thread下,一个接着一个的被运行。在你绘画的时候,paint是一个动作,而容器的repaint或者validate又是另外一个事件,当你执行paint的时候,repaint或validate要等待它结束以后才轮得到。这种进程是线性的,而动画需要的是多线程同步运行。由于没有看到你的程序,我猜测一下而已。如果你程序里没有Thread的话,试着把绘画部分放到Thread里,再看看是不是你想要的效果。
      

  2.   

    设置timer
    一秒钟repaint 3次
      

  3.   


    不知道你具体怎么实现,只能建议尽量不要在递归里用Thread,因为Thread本身就很难控制,递归一旦被调用也不可控制,两个不可控制的东西扭打做一团的时候太危险了。
      

  4.   


    问下 如果我让主程序运行到要执行动画的地方然后让它唤醒我的动画线程 然后wait();动画执行完再唤醒主线程 这样做可以么?