Jak mogę uzyskać rzeczywisty rozmiar JPanel w JFrame?Jak uzyskać prawdziwy rozmiar JPanel?
Odpowiedz
rozmiar będzie 0,0
dopóki nie zostanie wyświetlona, ponieważ składniki i układ nie są obliczane wcześniej.
Czy jest wywołanie inicjowania komponentów potomnych jPanel po uzyskaniu rzeczywistej szerokości i wysokości? –
thePanel.getSize();
ta zwraca wymiar.
Czasami dodam element ComponentListener, aby wyświetlić wymiar po zmianie rozmiaru panelu.
EDIT: Jeśli chcesz rozmiaru okienka zawartości w JFrame następnie
theFrame.getContentPane().getSize();
Nie daje rzeczywistego rozmiaru java.awt.Dimension [width = 0, height = 0] Użyłem tego przed – Yoda
@RobertKilar km połowa odpowiedział na twoje pytanie, dodaj ComponentLsterner do panelu, który cię interesuje i monitoruj zdarzenia componentResized – MadProgrammer
@RobertKilar prawdopodobnie otrzymujesz rozmiar przed renderowaniem. Wypróbuj moduł obsługi zdarzenia zmiany rozmiaru komponentu słuchającego. – km1
"Poprzez wywoływanie [' getSize() '] (http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getSize%28%29)." Możliwe, że metoda jest wywoływana przed momentem, w którym zostanie zrealizowana. Aby uzyskać bardziej szczegółowe porady, opublikuj [SSCCE] (http://sscce.org/). –
Jak mówi @Andrew. Ale nie możesz tego zrobić, dopóki nie zostanie wyrenderowany. – km1