Имитация длительной работы - PullRequest
3 голосов
/ 31 октября 2011

Как я могу имитировать длительную работу базы данных?Мое требование - отображать диалоговое окно с JProgressBar до завершения операции.

1 Ответ

6 голосов
/ 31 октября 2011

Используйте фоновый поток (например, предоставленный SwingWorker), чтобы запустить цикл for с 1 по 10 с Thread.sleep внутри цикла.Затем, если это определенный режим JProgressBar, вы можете обновить его значение, передав 10 * индекс цикла в индикатор выполнения (особенно в потоке Swing, EDT).

Редактировать:
@James Poulson: Если вы используете объект SwingWorker, вы будете использовать методы publish/process и done для обновления EDT.Если вы используете свой собственный фоновый поток, вам обязательно нужно обернуть любую группу вызовов Swing в Runnable и поставить ее в очередь на EDT с invokeLater.

...