Показывать оставшееся время с помощью jprogressbar?

#java #while-loop #jprogressbar

#java #цикл while #jprogressbar

Вопрос:

У меня есть несколько файлов большой базы данных в папке, с которыми я некоторое время обрабатывал их в JAVA, как я могу показать оставшееся время в процентах с помощью JProgressBar?

 public int countTrueAmr(String text, String under,String value, String search) {
        int sLen = under.length();
        int count = 0;
        int index = text.indexOf(under   value, 0);
        int nextIndex = text.indexOf(under, index   sLen);
        while (index > 0 amp;amp; nextIndex > 0) {
            count  = countString(text.substring(index, nextIndex), search);

            index = text.indexOf(under   value, index   sLen);
            nextIndex = text.indexOf(under, index   sLen);
            if (nextIndex < 0)
                nextIndex = text.length();
        }
        return count;
    }
  

большое спасибо …

Ответ №1:

  1. Продлить SwingWorker .
  2. Переопределить doInBackground() . Поместите цикл внутрь. Время от времени вызывайте этот метод publish(...) .
  3. Переопределить process(...) . Вызов JProgressBar ‘s setValue(i) .

Комментарии:

1. Пожалуйста, ознакомьтесь с руководством: download.oracle.com/javase/tutorial/uiswing/components /…

Ответ №2:

Не могли бы вы, пожалуйста, привести мне пример?

SwingWorker setProgress() Метод следует использовать таким образом, чтобы графический интерфейс «уведомлялся асинхронно в потоке отправки событий«. Пример есть здесь и в API.