[英]GUI doesn't show the command at the frame
我用Java為學校編寫了一個小游戲。 我們有具有給定功能的庫。 我寫了一個重復命令的代碼(同時),我用println檢查了命令是否正確運行,但是在GUI中,您看不到結果,只有最后一個結果。
項目: https : //drive.google.com/open?id = 0B5Ehxz_FAn6BMjVPOWY5MkgycVk&authuser = 0
碼:
public void spielen () {
if (guthaben > 0) {
if (endlosspielAktiv) {
while (guthaben > 0) {
kasten.Ringe.faerbeUm(); //Here the GUI doesn't show the results
ZEICHENFENSTER.gibFenster().warte(500);
guthabenRunter();
}
setEndlosspielAktiv(false);
} else {
kasten.Ringe.faerbeUm();
}
} else if (guthaben == 0) {
setEndlosspielAktiv(false);
}
guthabenRunter();
}
僅在返回調用線程的所有未決和正在運行的方法之后,才會更新GUI。 在您的情況下,GUI的更新會延遲到方法spielen()
返回之前。
為了立即得到結果,您可以使用其他線程,如下所示:
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();
}
spielen()
所有代碼都異步運行,並且不會阻止方法返回。
如果您想了解有關線程的更多信息,我建議您閱讀(德語)電子書的相應章節,網址為http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_14_003.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.