如何减慢java中特定方法的执行速度

时间:2012-02-09 16:25:59

标签: java swing timer

我的目标是制作一个我编写的方法(对swing模块的更新)在循环中以500ms的延迟运行。例如,这里大致是我的循环应该是什么样的:

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;  
}  

}

编辑:为了更好地阐明我的目标:我的目标是通过将其颜色更改为红色,等待.5然后交换它们并将其颜色返回到空来突出显示要在冒泡排序中交换的两个数字(我已修改)代码,因为要将颜色更改为null,而不是之前的Color.WHITE)。对不起,感到困惑。

1 个答案:

答案 0 :(得分:3)

使用javax.swing.Timer类以指定的时间间隔执行事件。此机制将确保在事件派发线程中修改Swing组件。