2010-09-15 17 views
20

Chcę dodać nowe komponenty do mojej ramki JFrame podczas uruchamiania po naciśnięciu przycisku. To działa do tej pory, ale muszę ręcznie zmienić rozmiar okna, aby zobaczyć nowe komponenty.odśwież JFrame po dodaniu nowych komponentów

Czy istnieje działanie, które można uruchomić, lub metodę wywoływania w celu odświeżenia okna? Każda pomoc doceniona. Z góry dziękuję.

Odpowiedz

36

Musisz revalidate(); ramki. Jeśli to nie pomoże trzeba też zadzwonić repaint();

+1

ok, musiałem trochę zhakować w moich klasach, ale to działa! (btw masz na myśli validate() right?;)) – reox

+0

rzeczywiście, ponieważ JFrame jest już kontenerem najwyższego poziomu, możesz po prostu wywołać validate() ;. – crusam

+0

Cóż, ogólnie komponenty są dodawane do JPanel, a nie do ramki bezpośrednio, więc wznawiasz ponownie panel. – camickr

7

zadzwonić

revalidate(); 
repaint(); 

revalidate mówi menedżer aby zresetować układ oparty na nowej liście składników. Spowoduje to również wywołanie odświeżenia.

służy do informowania, że ​​dany składnik ma zostać odmalowany.

0

w java repaint(); dla mnie. podczas gdy revalidate(); nie działa dla mnie.

Powiązane problemy