Я использую следующий код для прокрутки до конца JList.Я использую его, когда устанавливаю setVisible в окне, содержащем JList, и когда добавляю элементы в JList.
int lastIndex = getMyList().getModel().getSize() - 1;
if (lastIndex >= 0) {
getMyList().ensureIndexIsVisible(lastIndex);
}
Проблема заключается в том, что при первом вызове setVisible JList прокручивает пару элементов длянет явной причины.Если я затем вызываю setVisible (false), а затем вызываем setVisible (true), JList прокручивается вниз, как и должно быть.Одна вещь, которую я заметил, состояла в том, что, когда я открываю окно, некоторые его компоненты, кажется, перестраиваются за доли секунды.Так что я предполагаю, что проблема может быть в этом.
Итак, я нажал «печать экрана», когда я открыл одно из этих окон, и вы можете видеть, что, когда окно первоначально открывается, компоненты в нижней части окна не отображаются.даже не видно (смайлики и кнопки).Вот как выглядит окно, когда оно «полностью открыто», а также и изображение того, как оно выглядит за долю секунды до того, как оно полностью открывается.
Как окно выглядит один разоно открыто (вы можете видеть, что полоса прокрутки не внизу)
Как выглядит окно, когда я делаю снимок экрана, так как оно открывается после вызова setVisible ()
Итак, кто-нибудь знает, почему макет меняется при открытии окна и как я могу заставить свой JList прокручиваться вниз, когда оно открывается впервые?