Если вы знаете границы и точность ваших значений, это легко сделать с помощью обертки.Я использовал этот подход для приложений с интенсивными вычислениями, где 1% соответствует примерно 30 секундам.Показ JProgressBar
с min=0
и max=100
не дал достаточной обратной связи.Пользователи думали, что приложение зависло.
Решение: Масштабировать значения
У меня был float (0f - 1f), который представлял фактический процент выполнения.Умножив это на 10000, я получил целочисленный диапазон от 0 до 10000. Я установил JPB с min = 0 и max = 10000.
Затем просто вызовите setString(NumberFormat.getPercentInstance().format(value))
, чтобы отобразить отформатированный процент.