2

ユーザーが挿入した配列をソートしたい。この部分はもう大丈夫です。私が問題を抱えているのは、並べ替えボタンをクリックすると、jtextarea 内で段階的に、各行の間に少し時間のずれが生じることです。

私の問題はどこにありますか、Thread.sleep を for ループの中に入れようとしています。これは、1 行を印刷してから少し一時停止しますが、適切なタイミングで一時停止するのではなく、並べ替えを開始してすべてを印刷する前です。すぐに。

public void bubbleSort(int[] arr) {
    int[] array_to_sort = arr;
    int[] initial_array = arr;
    int count = 1;
    String result = "";
    String result2 = "";
    for (int l = 0; l < initial_array.length; l++)
        result2 += arr[l] + " ";
    for (int i = array_to_sort.length; i >= 1; i--)
        for (int j = 1; j < i; j++)
            if (array_to_sort[j - 1] > array_to_sort[j]) {
                int aux = array_to_sort[j];
                array_to_sort[j] = array_to_sort[j - 1];
                array_to_sort[j - 1] = aux;
                for (int l = 0; l < array_to_sort.length; l++)
                    result += array_to_sort[l] + " ";
                Interface.jTextArea1.append(result + "\n"); // I'd like to pause after printing this line
                result = "";
                count++;
            }
}

誰かがこの一時停止を正しい方法で行う方法について教えてもらえますか?

4

1 に答える 1

0

Interface.jTextArea1.append(result + "\n"); // I'd like to pause after printing this line

次のfor(int i = 0; i < Short.MAX_VALUE;i++);
ことを行います。つまり、空のループを実行して遅延をシミュレートします。適切な解決策は、コードを再構築して、EDT で印刷するテキストを間隔を置いて送信することですが。

于 2012-12-01T19:45:42.843 に答える