logo
Хабибуллин

Индикатор JProgressBar

Индикатор, часто называемый "градусником", показывает степень выполнения какогото процесса, чаще всего в процентах. Процесс должен вырабатывать какое-нибудь целое число. В конструкторе индикатора

JProgressBar(int orientation, int min, int max);

задаются наименьшее min и наибольшее max значения этого числа. В других конструкторах опущены некоторые из указанных параметров. При этом ориентация считается горизонтальной, min = 0, max = 100.

По мере выполнения процесса он должен передавать степень своего выполнения в индикатор методом setValue(int). Это значение немедленно отражается в индикаторе. После обращения к методу setStringPainted(true) в окне индикатора появится еще число — процент выполнения процесса.

Если время выполнения процесса, связанного с индикатором, не определено, то можно перевести индикатор в неопределенный режим (indeterminate mode). Это делается методом setIndeterminate(true). В этом режиме индикатор мигает, показывая, что процесс выполняется. Когда окончание процесса определится, надо занести наибольшее значение процесса в индикатор методом setMaximum(int), текущее значение методом setValue(int) и перевести индикатор в обычный режим методом setIndeterminate(false).

Внешний вид индикатора описывается абстрактным классом ProgressBarUI. У него два

расширения — классы BasicProgressBarUI и MultiProgressBarUI. Стандартный вид Java

L&F обеспечивается классом MetalProgressBarUI. При необходимости изменения внешнего вида индикатора следует расширить один из этих классов и установить новый вид

методом setUI(ProgressBarUI).

Индикатор может работать в отдельном окне, эту возможность предоставляет класс

ProgressMonitor.