javagui航路点绘制
我正在为一所大学做一个项目,我被最后一个功能卡住了。 我已经编写了一个代表15x10块网格的GUI。 每个正方形的底色都是灰色的。而且每个正方形都有一个ID,它存储在一个2维的空间中。数组。现在我从列表中获取路径点 现在我要遍历数组列表,取它的第一个索引。将fitting字段涂成红色,等待进入下一个索引,将此字段涂成红色,将第一个字段再次涂成灰色。直到路的尽头javagui航路点绘制,java,multithreading,user-interface,repaint,Java,Multithreading,User Interface,Repaint,我正在为一所大学做一个项目,我被最后一个功能卡住了。 我已经编写了一个代表15x10块网格的GUI。 每个正方形的底色都是灰色的。而且每个正方形都有一个ID,它存储在一个2维的空间中。数组。现在我从列表中获取路径点 现在我要遍历数组列表,取它的第一个索引。将fitting字段涂成红色,等待进入下一个索引,将此字段涂成红色,将第一个字段再次涂成灰色。直到路的尽头 public void markiereWeg(List<Wegpunkt> list) { boolean
public void markiereWeg(List<Wegpunkt> list) {
boolean ende = true;
Iterator<Wegpunkt> iter = list.iterator()
int i = 0;
while(i < list.size()-1) {
Wegpunkt wpNext = list.get(i+1);
Wegpunkt wpAkt = list.get(i);
Wegpunkt wpVor = list.get(i-1);
inventar[wpAkt.getSpalte()][wpAkt.getZeile()].setAktivesFeld(true);
i++;
我尝试使用Thread.sleep(),但这只会延迟函数的调用。
也许有人能给我一个提示。那太好了。
谢谢。为了更好地帮助您,请尽快发布一个简短的、可运行的、可编译的邮件。听起来您需要延迟。Thread.sleep正在做(或不做)什么是您不需要的?不要阻止EDT(事件调度线程)-发生这种情况时,GUI将“冻结”。不要调用
Thread.sleep(n)
为重复任务执行Swing计时器,或为长时间运行的任务执行SwingWorker
。请参阅了解更多详细信息。通过这种方式,该方法可以在每个字段瞬间将整个道路涂成红色。sleep()只是在整个过程中延迟绘制。这并不是一个接一个地延迟单个字段的着色。我尝试使用swing计时器,但是我通过一个按钮调用markiereWeg方法,所以我需要一个ActionEvent,我还需要另一个swing计时器的ActionEvent,它会导致代码中出现问题
inventar[wpVor.getSpalte()][wpVor.getZeile()].setInaktiv(true);
inventar[wpNext.getSpalte()][wpAkt.getZeile()].setAktivesFeld(true);
}}