3

長時間実行されるデータベース操作をどのようにシミュレートできますか?私の要件は、操作が完了するまでJProgressBarを含むダイアログボックスを表示することです。

4

1 に答える 1

6

バックグラウンドスレッド(SwingWorkerによって提供されるスレッドなど)を使用して、ループ内でThread.sleepを使用して1から10までのforループを実行します。次に、それが確定モードJProgressBarの場合、10 *ループインデックスをプログレスバーに渡すことでその値を更新できます(もちろん、Swingスレッド、EDTでそうするように注意してください)。

編集:
@James Poulson:SwingWorkerオブジェクトを使用している場合は、publish/processメソッドとメソッドを使用doneしてEDTを更新します。独自のバックグラウンドスレッドを使用している場合は、必ずSwing呼び出しのグループをRunnableでラップし、invokeLaterを使用してEDTでキューに入れてください。

于 2011-10-30T20:18:00.630 に答える