繁体   English   中英

GUI无法正确更新

[英]GUI not updating properly

我刚刚完成了一个项目,其中涉及创建一个迷宫并对三个“机器人”进行编程,以使用不同的策略在其中进行移动。 实现中涉及的类是:

  • 具有三个子类的抽象类机器人
  • 处理迷宫逻辑操作的迷宫类
  • 一个JFrame类,以图形方式显示迷宫并显示机器人在迷宫中移动

最后,我有一个带有main方法的入口点,其中仅包含以下内容:

    Maze m = new Maze();
    MazeFrame mf = new MazeFrame(m);
    RightHandRobot mr = new RightHandRobot(m, mf);
    mr.go(m);

这非常完美-迷宫显示在GUI上,我可以看到机器人穿过迷宫直至到达终点-达到了预期的效果。

我的问题是:在JFrame的顶部是三个按钮,每个按钮都有一个ActionListener,它创建一种机械手类型的实例并调用其go方法,这使其移动直到到达“完成单元”。 当我单击这些按钮之一时,便创建了机械手并开始移动(可以通过每次移动执行的println语句进行验证),但是我无法在GUI上看到机械手在移动。 仅在机器人到达终点(即go()方法完成)时才更新GUI,此时将显示机器人所走的整个路径。

为什么在通过main方法创建机械手而不是通过JFrame类创建机械手时,GUI可以正确更新?

我不确定您需要看什么代码来帮助我解决这个问题,所以让我知道您需要看什么。

使用javax.swing.Timer来对动画进行节奏调整,如本FleetPanel所示。 在每个滴答声中,计时器的侦听器应仅渲染正在运行的机器人。

图片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM