2010-09-17 35 views
6

Giả sử một JFrame bình thường, tôi đang cố gắng để có được các giá trị inset trước khi frame được hiển thị. Tôi có thể nhận được các giá trị này tốt khi khung được hiển thị (và tôi cho rằng tôi có thể tạo ra khung hình ngoài màn hình), nhưng đã tự hỏi liệu có cách nào để đánh dấu Java vào cài đặt trước khi hiển thị không. Trước cuộc gọi này, tất cả các giá trị inset đều bằng không.Java; Bắt insets trước frame có thể nhìn thấy

Net, tôi đang cố gắng để có được kích thước chính xác của một khu vực khung khách hàng - hoặc nói tốt hơn, tôi đang cố gắng tạo một JFrame có kích thước khu vực khách hàng rất cụ thể.

Xin cảm ơn trước.

Trả lời

12

Điều này có hữu ích không?

frame.pack(); 
System.out.println("Frame Insets : " + frame.getInsets()); 

Tôi đang cố gắng để tạo ra một JFrame có kích thước vùng client rất cụ thể.

Sau đó, bạn thiết lập kích thước ưa thích của bảng điều khiển bổ sung vào khung:

panel.setPreferredSize(new Dimension(...)); 
frame.add(panel); 
frame.setResizable(false); 
frame.pack(); 
frame.setVisible(true); 
+3

tôi muốn làm điều này mà không cần thêm bất cứ điều gì vào khung. Trên thực tế, tôi cũng xóa bố cục của khung. Tuy nhiên, bạn đã chỉ cho tôi đúng hướng - có vẻ như pack() là cù mà tôi đang tìm kiếm. Bây giờ, nếu tôi làm một) tạo JFframe, b) setLayout (null) c) myJFrame.pack(), và THEN nhận được các insets, nó thực hiện chính xác những gì tôi đã hy vọng. Sau này, tôi đặt kích thước JFrame thực tế (có tính đến các insets) và tôi đúng nơi tôi cần. Cám ơn đã chỉ tôi hướng đi đúng. – RobNY

Các vấn đề liên quan