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 に答える