0
public void QUICKSORT(int[] A, int p, int r)  {
if(p < r)    
 {
    q=PARTITION(A,p,r);
    labelPartitionPoint.setText("Partition point = "+q);
    Thread.sleep(3000);
    QUICKSORT(A,p,q-1);
    QUICKSORT(A,q+1,r);
  } 
}
4

1 回答 1

1

如果您在外部线程中执行此操作,则必须使用 Swing 实用程序invokeLater(或invokeAndWait)在 EDT 中安排 Swing 组件状态的更新。

public void QUICKSORT(int[] A, int p, int r)  {
if(p < r)    
 {
    q=PARTITION(A,p,r);
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            lblPartitionPoint.setText("Partition point = "+q);
        }
    });
    Thread.sleep(3000);
    QUICKSORT(A,p,q-1);
    QUICKSORT(A,q+1,r);
  } 
}
于 2013-09-11T10:00:13.727 回答