jProgressBar с базой данных - PullRequest
0 голосов
/ 05 января 2010

как отобразить прогресс в jProgressBar, когда я что-то записываю в базу данных?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 января 2010

Обычно вы используете SwingWorker для обновления JProgressBar из потока диспетчеризации событий при выполнении операций записи в базу данных в фоновом потоке. Например:

// Create progress bar to represent 10 items we wish to write to
// the database (hence min := 0, max := 10);
JProgressBar pBar = new JProgressBar(0, 10);

// TODO: Add progress bar to panel and display.

// Invoke SwingWorker to perform database write operations on
// background thread.
new SwingWorker<Void, Integer>() {
  /**
   * Called on background worker thread.  Performs DB write operations.
   */
  public Void doInBackground() {
    for (int i=0; i<10; ++i) {
      // TODO: Perform DB write operation here.

      // Publish progress so far back to Event Dispatch Thread.
      publish(i);
    }
  }

 /**
  * Called on EDT with intermediate progress result(s).
  */
 protected void process(List<Integer> chunks) {
   if (!chunks.isEmpty()) {
     int progress = chunks.get(chunks.size() - 1);
     pBar.setValue(progress);
   }
 }      

 /**
  * Called on EDT when DB write task has completely finished.
  */
 protected void done() {
   pBar.setValue(pBar.getMaximum());
   // TODO: Hide progress bar, etc.
 }
}.execute()
0 голосов
/ 05 января 2010

На вашем сервере вы должны собрать данные о прогрессе и предоставить их так, чтобы jProgressBar мог их запросить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...