Java GUI不在框架上显示命令

Java GUI不在框架上显示命令,java,user-interface,actionlistener,Java,User Interface,Actionlistener,我用Java为学校编写了一个小游戏。我们有给定函数的库。我编写了一个重复命令的代码,同时,我用println检查了命令是否正确运行,但是在GUI中你看不到结果,只有最后一个结果 项目: 代码: 只有在调用线程的所有挂起和正在运行的方法返回后,GUI才会更新。 在您的情况下,GUI的更新会延迟,直到方法Spilen返回 要立即获得结果,您可以使用以下附加线程: public void spielen () { new Thread(new Runnable() {

我用Java为学校编写了一个小游戏。我们有给定函数的库。我编写了一个重复命令的代码,同时,我用println检查了命令是否正确运行,但是在GUI中你看不到结果,只有最后一个结果

项目:

代码:


只有在调用线程的所有挂起和正在运行的方法返回后,GUI才会更新。 在您的情况下,GUI的更新会延迟,直到方法Spilen返回

要立即获得结果,您可以使用以下附加线程:

public void spielen () {
        new Thread(new Runnable() {

            @Override
            public void run() {
                if (guthaben > 0) {
                    if (endlosspielAktiv) {
                        while (guthaben > 0) {
                            kasten.Ringe.faerbeUm();
                            ZEICHENFENSTER.gibFenster().warte(500);                            
                            guthabenRunter();
                        }
                        setEndlosspielAktiv(false);
                    } else {
                        kasten.Ringe.faerbeUm();
                    }
                } else if (guthaben == 0) {
                    setEndlosspielAktiv(false);
                }
                guthabenRunter();
            }
        }).start();        
    }
Spilen的所有代码都是异步运行的,不会阻止方法返回


如果您想了解更多关于线程的知识,我建议您阅读德国电子书的相应章节

我们现在帮不了您-您需要向我们提供更多代码。你能提供一个完整的编译示例吗;这可以用来重现你的问题吗?一个好办法是用英语编写你的代码,这样会更容易理解,所以不同的人想要阅读你的代码ok是google drive的zip ok?@school_guy准确地说:用德语编写你的家庭作业是完全可以的;但是如果你想在stackoverflow问更多的问题,英语会更好。我知道,我在家里试图用英语编程,但在学校我的老师说我必须使用germanok,thx我有一个与schrödinger有关的,但还没有在书中出现,我会在这一章后面搜索,thx寻求帮助
public void spielen () {
        new Thread(new Runnable() {

            @Override
            public void run() {
                if (guthaben > 0) {
                    if (endlosspielAktiv) {
                        while (guthaben > 0) {
                            kasten.Ringe.faerbeUm();
                            ZEICHENFENSTER.gibFenster().warte(500);                            
                            guthabenRunter();
                        }
                        setEndlosspielAktiv(false);
                    } else {
                        kasten.Ringe.faerbeUm();
                    }
                } else if (guthaben == 0) {
                    setEndlosspielAktiv(false);
                }
                guthabenRunter();
            }
        }).start();        
    }