Нестабильное отображение элементов на фрейме - Java

Узнай цену своей работы

Формулировка задачи:

Добдень,

Такой баг(картинку прикрепил):

Создал фрейм, добавил прогресбар, запускаю - фрейм пустой, потянул за него (изменил размер фрейма) - статусбар появился. заметил что если прописать фрейму setVisible(true) в самом конце (после создания и добавления прогресбара), то все отображается нормально, а если создать фрейм, прописать setVisible(true), а потом создавать и добавлять другие компоненты графики, то происходит такой баг.

Это только у меня так из за свойст видеокарты, или все верно, и метод setVisible(true) должен прописываться после всех операций с компонентами на фрейме? Спасибо.

Структура кода при которой проявляется этот баг:
Листинг программы
  1. JFrame f = new JFrame("JProgressBar");
  2. f.setSize(400, 400);
  3. f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  4. f.setLayout(new GridBagLayout());
  5. f.setVisible(true);
  6. JProgressBar progressBar = new JProgressBar();
  7. progressBar.setStringPainted(true);
  8. progressBar.setIndeterminate(true);
  9. progressBar.setMinimum(0);
  10. progressBar.setMaximum(100);
  11. f.add(progressBar);
  12. for(int i = progressBar.getMinimum(); i<=progressBar.getMaximum();i++){
  13. Thread.sleep(100);
  14. progressBar.setValue(i);
  15. }

Решение задачи: «Нестабильное отображение элементов на фрейме»

textual
Листинг программы
  1. public class Progress extends JProgressBar {
  2.  
  3.     Progress() {
  4.          super();
  5.          super.setStringPainted(true);
  6.          super.setIndeterminate(true);
  7.          super.setMinimum(0);        
  8.          super.setMaximum(100);
  9.     }
  10. }
  11.  
  12. public void startProgressBar() {
  13.     for(int i = super.getMinimum(); i<=super.getMaximum();i++){
  14.             Thread.sleep(100);
  15.             super.setValue(i);
  16.         }
  17. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут