2015-04-14 54 views
0

在我的空閒時間,我通過製作遊戲練習java。我有一個依次調用2個方法的按鈕,它們都改變了相同的UI對象。有方法之間的java等待

我找不到方法/無法理解如何在執行方法時使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()仍然只顯示最終值,跳過之間的任何東西。我如何解決這個問題?

+0

這聽起來像你想在第一次方法調用後使用調試器來檢查值?或者我錯了? – Danny

+0

[Java中的等待函數]的可能的重複(http://stackoverflow.com/questions/2517022/wait-function-in-java) –

+0

嘗試在第一個末尾調用方法 – CaffeineToCode

回答

0

最好的方法是使用一個調試器,設置斷點 - 任何現代IDE擁有的支持:)

1

托馬斯 已經有其他用戶在這裏用相同的(非常類似的問題)計算器。我建議你在發佈之前進行搜索。

您可以使用定時器就像你說的,看到這個答案爲例: java: run a function after a specific number of seconds

基本上你將調用方法1,使用計時器在未來(調度)來調用方法2。

+0

我在尋求解決方案之前詢問過。問題是我根本不理解解決方案,或者我無法測試它,因爲計時器是非靜態的,我只是對這個概念有點模糊不清。我只想要一個如何將計時器添加到按鈕所調用方法的示例。 – Tomas

+0

答案應該是評論而不是答案。 – minion