2012-02-09 29 views
1

這是我的目標是讓我寫(即更新擺動模塊)與環中500ms的延遲運行的方法。例如,這裏有大約我的循環應該是什麼樣子:我怎麼能減緩特定方法的執行在Java

public final void doBubbleSort(String numbers[], JButton numButton[]){ 
for (int k = 0; k < numbers.length - 1; k++) { 
    String str1 = ""; 
    boolean isSorted = true; 

    for (int i = 1; i < numbers.length - k; i++){ 
    if (Integer.parseInt(numbers[i]) < Integer.parseInt(numbers[i - 1]) ){ 
     String tempVariable = numbers[i]; 
     numbers[i] = numbers[i - 1]; 
     numbers[i - 1] = tempVariable; 
     isSorted = false; 
     str1 = numButton[i].getText(); 
     numButton[i].setBackground(Color.RED);   
     numButton[i-1].setBackground(Color.RED); 

     //Pause here for 500 ms 

     numButton[i].setText(numButton[i-1].getText()); 
     numButton[i-1].setText(str1); 
     numButton[i].setBackground(null);   
     numButton[i-1].setBackground(null); 

    } 
    } 

    if (isSorted) 
    break; 
} 

} 

編輯:爲了更好地闡明我的目標:我的目標是通過改變其顏色爲紅色突出顯示有關冒泡排序要交換的兩個數字,等待.5s然後交換它們並將它們的顏色返回爲null(我已經修改了代碼,因爲它將顏色更改爲null,而不是像之前那樣改爲Color.WHITE)。對困惑感到抱歉。

回答

3

使用javax.swing.Timer類以指定的時間間隔執行事件。該機制將確保在事件分派線程中修改Swing組件。