Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javagui航路点绘制_Java_Multithreading_User Interface_Repaint - Fatal编程技术网

javagui航路点绘制

javagui航路点绘制,java,multithreading,user-interface,repaint,Java,Multithreading,User Interface,Repaint,我正在为一所大学做一个项目,我被最后一个功能卡住了。 我已经编写了一个代表15x10块网格的GUI。 每个正方形的底色都是灰色的。而且每个正方形都有一个ID,它存储在一个2维的空间中。数组。现在我从列表中获取路径点 现在我要遍历数组列表,取它的第一个索引。将fitting字段涂成红色,等待进入下一个索引,将此字段涂成红色,将第一个字段再次涂成灰色。直到路的尽头 public void markiereWeg(List<Wegpunkt> list) { boolean

我正在为一所大学做一个项目,我被最后一个功能卡住了。 我已经编写了一个代表15x10块网格的GUI。 每个正方形的底色都是灰色的。而且每个正方形都有一个ID,它存储在一个2维的空间中。数组。现在我从列表中获取路径点 现在我要遍历数组列表,取它的第一个索引。将fitting字段涂成红色,等待进入下一个索引,将此字段涂成红色,将第一个字段再次涂成灰色。直到路的尽头

    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);
        }}