Swing Layout: предотвращение перемещения моих компонентов - PullRequest
0 голосов
/ 13 декабря 2010

Я пришел из проекта Opengl, и мне нужно иметь возможность размещать элементы на моем экране и чтобы они оставались там.

Я создаю апплет того же размера, что и исходный проект opengl (800 * 480), и хочу иметь возможность разместить кнопку 150 * 50 с координатами 100,200.

все работает нормально, когда событие вызывает setSize, затем внезапно срабатывает layout (), и моя кнопка перемещается в центр экрана ...

как я могу обойти это?

В настоящее время я переопределяю компоновку () моей JPanel, но это не правильно ^^

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Прочтите руководство по Swing на Использование менеджеров по макету .Настоятельно рекомендуется научиться эффективно использовать диспетчеры компоновки и не пытаться вручную размещать компоненты.Начинающие не понимают, как эффективно использовать менеджеры компоновки, и пытаются использовать размещение вручную.

Однако в руководстве есть раздел «Абсолютное позиционирование», который поможет вам.Однако в целом это следует использовать только при наличии функции перетаскивания.

1 голос
/ 13 декабря 2010

По умолчанию JPanel будет использовать FlowLayout . Вам было бы лучше с чем-то другим, например, BorderLayout , но есть выбор из числа Измените его, например, на ::1005*

panel.setLayout(new BorderLayout());

Вы можете установить рамку вокруг кнопки с помощью setBorder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...