Làm cách nào để nhận được kích thước JPanel thực trong JFrame?Làm thế nào để có được kích thước thực JPanel?
Trả lời
Kích thước sẽ 0,0
cho đến khi nó được hiển thị bởi vì các thành phần và bố trí không được tính trước.
Có bất kỳ cuộc gọi lại để khởi tạo các thành phần con của jPanel sau khi nó có chiều rộng và chiều cao thực của nó không? –
thePanel.getSize();
Trả về thứ nguyên.
Đôi khi tôi thêm một ComponentListener để hiển thị thứ nguyên khi bảng điều khiển được thay đổi kích thước.
EDIT: Nếu bạn muốn kích thước của khung nội dung của JFrame sau đó
theFrame.getContentPane().getSize();
Nó không cho kích thước thực java.awt.Dimension [width = 0, height = 0] Tôi đã sử dụng nó trước khi – Yoda
@RobertKilar km trả lời một nửa câu hỏi của bạn, thêm ComponentLsterner vào bảng điều khiển mà bạn quan tâm và theo dõi sự kiện thành phầnĐược xác định – MadProgrammer
@RobertKilar có thể bạn đang nhận được kích thước trước khi kết xuất. Hãy thử xử lý sự kiện thay đổi kích thước của trình nghe thành phần. – km1
"Bằng cách thực sự gọi [' getSize() '] (http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getSize%28%29)." Có thể là phương pháp này đang được gọi trước khi nó được nhận ra. Để được tư vấn cụ thể hơn, hãy đăng một [SSCCE] (http://sscce.org/). –
Như @Andrew nói. Nhưng bạn không thể làm điều đó cho đến khi nó được trả lại. – km1