簡體   English   中英

讓Java在方法之間等待

[英]Have java wait between methods

在我的業余時間里,我通過做游戲來練習Java。 我有一個按鈕,一個接一個地調用2個方法,它們兩個都更改了相同的UI對象。

我找不到方法/無法理解如何讓Java在方法執行之間等待,以便我可以在第一個方法完成之后以及在第二個方法再次更改之前看到字段的值。

以我的理解,最好的方法是使用擺動計時器,但我根本不了解它的語法。 我嘗試使用睡眠,但是即使它等待指定的時間,它也只顯示原始值和最終值,而忽略了兩者之間的值。

我所擁有的是:

label.setIcon(Alive);

private void cmdAttackActionPerformed(java.awt.event.ActionEvent evt) {
    //inside method1:
    label.setIcon(Dead);

    //wait a few seconds to see the label while setIcon(Dead) is the value

    //inside method2:
    if (reinforcements!=0){
        label.setIcon(Alive);
    }
}

因此,我嘗試了一些修改,並設法獲得了結果,但是我仍然無法使它完成我想要的事情。

public void run() {
    String output="";
    for (int i = 0; i < combatInfo[info].length(); i++) {
        output=output+combatInfo[info].substring(i, i+1);
        if(i%2==0){
            cmdInfo.setText(output);
            System.out.println(output);
        }
        try {
            Thread.sleep(100);
        } catch (InterruptedException ex) {}
    }
};

println()一次只能執行一個步驟,但是應該如此,但是setText()仍然只顯示最終值,而跳過中間的任何內容。 我該如何解決?

Tomas,這里的stackoverflow上還有其他用戶有同樣的問題(非常相似的問題)。 我建議您在發帖之前先搜索一下。

您可以使用計時器,如示例所示,請參見此答案: java:在特定的秒數后運行函數

基本上,您將調用method1並使用計時器在將來(計划的)調用method2。

最好的方法是使用調試器並設置斷點-任何現代IDE都支持:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM