@Stalder

Java, Swing. Почему не появляются остальные компоненты?

Когда в цикле добавляю много элементов, отображаются лишь какое-то количество первых, остальные просто игнорируются, и при каждой компиляции число нарисованных разное. Почему так происходит? Как бороться?
public GUI(String windowName, ArrayList<String> pupilList) { //конструктор класса унаследованного от JFrame

        super(windowName);                              
        setVisible(true);                               
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
                                                       
        setLayout(null);
        setSize(640, 480);                             
        setResizable(false);                            
        setLocationRelativeTo(null);                   
        setLayout(null);

        this.pupilList = new ArrayList<>();

        for (int i = 0; i < pupilList.size(); i++) {
            this.pupilList.add(new JLabel(pupilList.get(i)));
            this.pupilList.get(i).setBounds(10, 10 + 20*i, 200, 15);
            add(this.pupilList.get(i));
        }
        ...
    }
  • Вопрос задан
  • 670 просмотров
Решения вопроса 1
@zelan
Кратко обо мне не получится.
setVisible(true);

Переставь как можно дальше, желательно в самый-самый конец. Компоненты могут не успеть отрисоваться. Помню такое часто было когда писал на свинге, и тоже при каждом запуске отрисовывалось разное количество компонентов. Либо попробуй обновить/перерисовать окно. Но там хитрыми методами надо его перерисовывать, к сожалению не вспомню, возможно frame.update(...) даже хватит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
29 мар. 2024, в 18:19
20000 руб./за проект
29 мар. 2024, в 18:08
2500 руб./за проект
29 мар. 2024, в 17:51
40000 руб./за проект