2

テキストファイルを読み取り、確率計算を行うJavaプログラムに取り組んでいます。ファイルの読み取りと関連するすべての計算は、while ループで行われます。

プログラムがファイルを処理するのに時間がかかるため、進行状況を表示するために (JProgressBar を使用して) プログレス バーを追加した JFrame を使用して GUI を作成しました。

コードは次のようになります-

while( there are more files to read )
{
    Read this file ;
    Do calculations ;

    Update progress bar ;
}

問題は、while ループが開始されて最初のファイルが処理されると、JFrame が単にフリーズすることです。プログレスバーが更新されず、JFrame のボタンを押すことができません。while ループが終了すると、フレームが更新され、プログレス バーが最終値に更新されます(したがって、プログレス バーは 0 から始まり、一時停止し、最後に 100 になります)

JFrameがフリーズしている理由を誰かが説明できますか? while ループの繰り返しで更新することは可能ですか (JFrame の進行状況バー)。

ありがとう !

4

3 に答える 3

2

解決策は を使用するthreadsことです。これがフリーズしている理由であり、すべてを同時に行っています。

見てください:

于 2013-04-03T13:26:08.533 に答える
1

スレッドは、一度に 1 つのことしか実行できません。したがって、計算を行わせると、GUI は更新されません。したがって、別のスレッドを使用する必要があります。また、おそらく GUI を再描画する必要があります。

于 2013-04-03T13:22:57.347 に答える