Переменные Java действуют (по сути) как указатели.
Вы создаете JProgressBar
и добавляете его в JPanel
- и сохраняете указатель на это в переменной bar
.Когда вы звоните bar = new JProgressBar(0, 0, 10);
, вы изменяете то, на что указывает указатель, но не изменяете исходный JProgressBar
(тот, который был добавлен к вашему JPanel
), теперь у вас есть новый , другой JProgressBar
(который не добавлен к вашему JPanel
), и поэтому установка его значения не изменяет то, которое является видимым на вашемJPanel
.
Это та же самая причина, по которой:
String name = "Billy";
String otherName = name;
name = "Jimmy";
System.out.println(otherName);
напечатает Billy
.