2011-12-15 6 views
1

У меня есть Jpanel, где я добавляю много компонентов (скажем, 100 JButtons). Когда я теперь просить высоту добавленных компонентов есть все 0. Сюда приходят Код:JComponent height before painting

void AddComponents(){ 

//add 100 Buttons to my jpanel 

for (Component component : jpanel.getComponents()) { 

     Rectangle test = component.getBounds(); 

     DebugTextArea.append("\nx: " + test.x + "- y:" + test.y + 
          "- height: " + test.height + "- width: " + test.width); 
     } 

} 

Все значения равны 0. Я знаю, что Hase что-то делать с тем, что картина компонентов будет возьмите некоторое время, но как я могу получить высоту, потому что мне понадобится высота Компонентов, чтобы установить VerticalScrollBar в определенную точку.

любая идея?

+2

, пожалуйста, изучите соглашения об именовании java и придерживайтесь их – kleopatra

+0

sry Я постараюсь сделать лучше в следующий раз – Leon

ответ

5

мне потребуется высоту компонентов для установки VerticalScrollBar - нет, вы не (при условии, что это полоса прокрутки в JScrollPane, который содержит панель с кнопками

button.scrollRectToVisible(button.getBounds()) 

после того, как компонент является (aka: показано)

+0

Реализованный/показан проблема ... Я добавляю кнопки и только две строки позже (в такая же функция), я попрошу размер ... и это будет 0. (И вы правы, JPanel находится в JScrollPane) – Leon