Когда используется setStringPainted()
из JProgressBar
, количество завершенных процессов отображается в процентах.
Но как мне настроить setStringPainted()
, чтобы я мог отображать оставшееся время вместо процентов?
Отображение пользовательской строки прогресса на JProgressBar
Ответы (2)
setString
public void setString(String s)
Устанавливает значение строки прогресса. По умолчанию эта строка имеет значение
null
, что подразумевает встроенное поведение использования простой строки процентов. Если вы предоставили настраиваемую строку прогресса и хотите вернуться к встроенному поведению, установите для строки значениеnull
.Строка выполнения окрашивается, только если метод isStringPainted возвращает значение true.
Параметры:
s
— значение строки прогресса
person
Joey
schedule
14.02.2012
Случайное примечание: если вы нашли этот ответ полезным, вы можете проголосовать за него (треугольник, указывающий вверх слева от вопроса). Если это решило вашу проблему, вы можете принять это (зеленая галочка слева от вопроса).
- person Joey; 14.02.2012
это не помогает в требовании OP отображать оставшееся время вместо процента - setString приводит к возврату данного текста как есть, без какой-либо связи с текущим значением
- person kleopatra; 14.02.2012
Ну, оценка времени не была частью вопроса, когда я его читал.
- person Joey; 14.02.2012
Интересно (читай: я поражен :-) вам придется самостоятельно реализовать любую строку прогресса, зависящую от значения, путем переопределения getString
final JProgressBar bar = new JProgressBar() {
@Override
public String getString() {
int max = getMaximum();
return super.getString() + (max - getValue());
}
};
bar.setStringPainted(true);
ActionListener l = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
bar.setValue(bar.getValue() + 1);
}
};
bar.setString("missing: ");
new Timer(500, l).start();
person
kleopatra
schedule
14.02.2012