2012-01-06 17 views
8

Tôi muốn đặt một số nút trong một số JPanel ở các vị trí ngẫu nhiên (x, y) và các lớp bố cục này gây phiền nhiễu.Đặt các thành phần theo các tọa độ tùy ý (x, y)

Điều này có thể thực hiện được trong Swing không?

+4

Tốt hơn là nên tìm hiểu về [Trình quản lý bố cục] khác nhau (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+1

Không, bạn chắc chắn không muốn làm bố cục xoay theo cách thủ công. Và không, không có gì gây phiền toái về layoutManagers - ngoại trừ bạn nghĩ rằng việc học tập gây khó chịu cho chính nó ;-) – kleopatra

+1

tại sao mọi người lại đoán câu hỏi thứ hai? có lẽ anh ta chỉ cần hoàn toàn kiểm soát các vị trí nút (ví dụ như trong một số loại trò chơi mà họ di chuyển xung quanh và người dùng phải đánh chúng). – fortran

Trả lời

9

Bạn có thể thiết lập tọa độ nếu bạn sử dụng một cách bố trí null:

panel.setLayout(null); 
Button b = new Button(....); 
panel.add(b); 
b.setSize(width, height); 
b.setLocation(x,y); 

Nhưng nó được khuyến khích mạnh mẽ để sử dụng bố cục. Các lớp bố trí không "gây phiền nhiễu", chúng là bạn của bạn nếu bạn hiểu chúng đúng cách.

Tôi đề xuất đọc tutorial about GridBagLayout, rất dễ hiểu (bảng html loại) và rất mạnh mẽ.

+0

+1 để giới thiệu LayoutManagers, -0.5 để thực hiện bố cục thủ công hoàn toàn (hach, độc đáo thúc đẩy tính hữu ích của người quản lý ... :-) – kleopatra

+0

Đồng ý, chỉnh sửa nó. – Stephan