2012-01-06 1 views
8

Я хочу поместить некоторые кнопки в JPanel в случайные позиции (x, y), и эти классы макета раздражают.Поместите компоненты в произвольные координаты (x, y)

Возможно ли это в Swing?

+4

Лучше узнать о разных [Менеджерах макетов] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+1

Нет, вы определенно не хотите, чтобы какой-либо макет разворачивался вручную. И нет, нет ничего раздражающего в layoutManager - за исключением того, что вы считаете, что обучение раздражает само по себе ;-) – kleopatra

+1

Почему все вторгаются в op? возможно, ему просто нужен полный контроль над позициями кнопок (например, в какой-то игре, где они перемещаются, и пользователь должен ударить их). – fortran

ответ

9

Вы можете установить координаты, если вы используете нулевой макет:

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

Но настоятельно рекомендуется использовать макеты. Классы макетов не «раздражают», они ваш друг, если вы их правильно понимаете.

Я предлагаю прочитать tutorial about GridBagLayout, это легко понять (kinda html tables) и очень мощный.

+0

+1 для рекомендации LayoutManagers, -0.5 для выполнения макета макета не полностью (hach, хорошо прогуливая полезность менеджеров ... :-) – kleopatra

+0

Согласовано, отредактировано. – Stephan