为了账号安全,请及时绑定邮箱和手机立即绑定

摇摆动画运行极慢

摇摆动画运行极慢

MM们 2019-06-19 14:48:32
摇摆动画运行极慢我使用JavaSwing运行的当前动画有一个问题。这是一个离散的事件模拟,基于文本的模拟工作得很好,我只是在把模拟和GUI输出连接起来有问题。对于这个例子,我将有10辆车要模拟。这些汽车的代表是JPanels稍后我将对此进行详细阐述。因此,考虑一下事件Process_CAR_CORT。每次计划执行此事件时,我都会添加一个Car对象的ArrayList叫cars在我的Model班级,等级。这个Car类具有以下相关属性:Point currentPos; // The current position, initialized in another method when knowing route.double speed;  // giving the speed any value still causes the same problem but I have 5 atm.RouteType route;  // for this example I only consider one simple route此外,它还有以下方法move() :switch (this.route) {     case EAST:         this.currentPos.x -= speed;          return this.currentPos;...//only above is relevant in this example一切都很好。所以理论上,这辆车沿着一条从东到西的直线行驶,而我刚刚调用了move()方法对我想移动的每一辆车。返回到Process_CAR_CORT事件。在添加了一个CAR对象之后,它调用了一个方法addCarToEast()在View班级,等级。这增加了一个JPanel在道路的起点,从东向西。去View类,现在我有了一个*分离的*线程,它执行以下操作(run()方法):@Override     public void run() {         while (true) {             try {                 Thread.sleep(30);             } catch (InterruptedException e) {                 e.printStackTrace();             }             if (!cars.isEmpty()) {                 cars.get(i).setLocation(                         new Point(getModel.getCars().get(i).move()));                 if (i == cars.size() - 1) {                     i = 0;                 } else {                     i++;                 }             }         }     }以上所述起先使汽车由东向西平稳行驶。但是在3到4辆车移动之后,它的速度非常慢,当我有10辆车行驶时,它的移动速度非常小。只是为了清理一下,此刻在Model班上有一个ArrayList的Car对象中的View类也有一个ArrayList的JPanel代表汽车的物体。我在试着匹配Car对象的JPanels,但我显然是在做CRA*Y的工作。我怀疑我做的事情效率很低,但我不知道是什么。我一开始以为它会访问ArrayList我想这会让它变得很慢。有什么指示我可以改变使它顺利运行吗?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 407 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信