Denisowator Ответов: 1

Назначение jprogressbar задаче?


У меня есть рабочая программа, которая использует флажки, чтобы позволить пользователю выбрать определенные каталоги, и после того, как пользователь нажимает кнопку, выбранные каталоги очищаются.

Что я хочу сделать сейчас, так это сделать так, чтобы в настоящее время нефункциональный индикатор выполнения заполнялся по мере очистки каталогов. Я просматривал документацию Java по JProgressBar бесчисленное количество раз, а также смотрел бесчисленные учебные пособия по созданию и использованию индикатора выполнения, но все до сих пор просто показывает, как вручную установить значение и сообщение индикатора выполнения, а не как назначить его фактической части задачи.

Мой вопрос заключается в том, где бы я поместил различные команды для индикатора выполнения, чтобы сделать его функциональным индикатором выполнения, а не просто баром, который заполняется независимо от того, что происходит. Например, как бы я сделал так, чтобы, когда конкретному каталогу нужно много удалить, и это занимает некоторое время, индикатор выполнения начинает заполняться медленнее? и наоборот, если в каталоге почти ничего нет.

Что я уже пробовал:

Я еще ничего не пробовал.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вы должны рассчитать скорость заполнения, основываясь на данных, которые вы пытаетесь обработать. Большинство систем делают это путем постоянной выборки данных, чтобы получить соотношение обработанных и необработанных, а также фактическую скорость в секунду / минуту и т. д.


Denisowator

Хотя это звучит очень сложно. Должен ли я делать вычисления вручную в коде, или есть что-то в Java, что я могу использовать?

Richard MacCutchan

Подумайте об этом: как Java узнает, какого прогресса вы добились в очистке определенных файлов из вашей системы? Очевидно, что вы должны делать вычисления самостоятельно по мере развития вашей деятельности. И это не так уж сложно, просто базовая математика - сколько работы завершено против того, сколько работы было всего.

Denisowator

Но как бы я сделал так, чтобы код знал, какая часть кода является процессом, отображаемым индикатором выполнения? Вот на чем я застрял.

Я не знаю, как бы я определил код как процесс для индикатора выполнения в первую очередь.

Кроме того, процессы очистки каталогов находятся в отдельных файлах классов, которые вызываются из основного файла класса. Это еще одна причина, по которой я изо всех сил пытаюсь объяснить программе, что это за процесс. Я знаю, как вызвать внешний класс, но как сделать ссылку на него?

Richard MacCutchan

Вам просто нужно создать связь между кодом, который выполняет работу, и кодом, который отображает индикатор выполнения. Google, вероятно, может найти вам несколько примеров.