Вопрос о GridBagLayout в Java - PullRequest
2 голосов
/ 27 июня 2010

Когда я использую GridBagLayout, всякий раз, когда размер окна изменяется, местоположения компонентов меняются до нового размера.

Теперь я хочу изменить расположение компонента после события (например, щелчок мышью по любой кнопке), пока компонент не выйдет из окна (это похоже на окно свойств или панели инструментов в Visual Studio 2008), я делаю это , но когда я изменяю размер этого окна, этот компонент перемещается в последнее место, которое мне не нужно.

когда я помещал композиты в JFrame с помощью GridBagLayout, я использовал gridx и gridy. Что я могу использовать, чтобы изменить это местоположение после создания окна?

1 Ответ

2 голосов
/ 27 июня 2010

Понятия не имею, что делает Visual Studio. Но это звучит так, как будто вы хотите в некоторых обстоятельствах взять под контроль положение компонента от менеджера компоновки.

Для этого я предлагаю использовать многоуровневую панель. Ваша панель станет нормальным слоем. Поверх этого находится стеклянная панель, без менеджера по расположению (или со специалистом). Когда вы начнете перемещать компонент, удалите его из нижнего слоя и добавьте на стеклянную панель.

Вариант - добавить все компоненты на верхний слой. Для каждого компонента добавьте прокси-компонент на нижний слой с макетом мешка сетки. Обычно прокси обновляет местоположение реального компонента в ответ на изменение, но допускает его нарушение.

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