3

ヌル行に達するまでファイルを読み取り、読み取りがいつ終了するかについてある程度正確なJProgressBarを作成したい場合、これをどのように行いますか?

私が尋ねる理由は、一部のファイルは、他のファイルがとの間を200msとる場所で読み取られるためです。2500ms10000ms

私はファイルを読むために簡単なことをしています

boolean completed

while(!completed) {
    //read file
    if(reader == null) {
        completed = false;
    } 
}

では、このような状況でプログレスバーを正確にする方法はありますか?(ちなみに、この場合、ファイルのサイズは必ずしも読み取りにかかる時間が短くなることを意味するわけではありません)

4

1 に答える 1

6

ファイルのサイズを使用してください-それはあなたの最良の尺度です。

表示するものは、ユーザーが理解できる意味を持っている必要があります。それが最も重要な部分です。プログレスバーが処理されたファイルのパーセントを意味する場合、それは非常に理解しやすく、定量化しやすく、計算と表示が簡単です。これにより、プログレスバーが透明になります。これが重要です。

これがユーザーによってどのように表示されるかを考えてください。ユーザーには頭脳があり、独自の結論を導き出すことができるため、ある種の予測インテリジェンスをプログラムする必要はありません。したがって、プログレスバーが前半で速く実行されてから遅くなるのを見ると、ファイルの半分が処理されていることがわかりますが、後半は時間がかかります。彼らが知る必要があるのはそれだけです!プログレスバーの速度が低下したため、前半に示した時間よりもファイルの完成に時間がかかる可能性があるという独自の結論を導き出すことができます。

実際、ユーザーは処理中のファイルについてすでに何かを知っている可能性があります。この特定のファイルの場合、有用な(または長時間処理される)データがすべて後半にあることを知っている可能性があります。したがって、プログレスバーが遅くなるのを見ると、それが期待されます。これにより、ユーザーはソフトウェアが正常に機能していることを知るために必要な透明性が得られ、待機する必要がある時間について独自の結論を導き出すことができます。

もちろん、「ファイルの25%が3秒で処理されたため、完了までにさらに9秒かかる」という一般的な見積もりを示すことも有用です。これは非常に一般的な基本的な方程式であり、透過的であるため、ユーザーはそれを使用する方法を理解し、処理しているファイルの詳細に合わせて調整することができます。

于 2012-04-19T16:14:49.163 に答える