Как я могу динамически переставлять элементы в сетке, используя Java? - PullRequest
2 голосов
/ 14 сентября 2011

Мне нужно переставить элементы, которые есть в моем GridLayout, чтобы при динамическом создании JButton нижний колонтитул (т. Е. JLabel) оставался в нижней части таблицы, а динамически создаваемая кнопка перемещалась прямо наднижний колонтитул.

Возможно ли это?Если да, могу ли я увидеть пример, пожалуйста?

Моя сетка в настоящее время имеет вид

new GridLayout(intIndex, 1);

, где intIndex увеличивается каждый раз при создании динамического элемента.

Ответы [ 2 ]

4 голосов
/ 14 сентября 2011

Поскольку это нижний колонтитул, вы, вероятно, хотите использовать BorderLayout и держать нижний колонтитул внизу с помощью BorderLayout.PAGE_END. Затем поместите ваш компонент с GridLayout в центре с BorderLayout.CENTER. Таким образом, ваш нижний колонтитул всегда будет оставаться внизу, и он не будет мешать содержимому, которое вы теперь можете свободно изменять, используя любой менеджер макета, не затрагивая нижний колонтитул.

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

1 голос
/ 15 сентября 2011

Я думаю, что я могу добавить еще кое-что, хотя один ответ принят.

Существует два интерфейса для макетов: LayoutManager и LayoutManager2. Второй расширяет первый. Итак, все классы макетов унаследованы от LayoutManager.

Теперь LayoutManager2 позволяет вам упорядочить компоненты в соответствии с некоторыми ограничениями. Например, в ответе Шакдауна BorderLayout.CENTER является ограничением для BorderLayout.

Однако макеты, которые реализуются только LayoutManager, не принимают ограничений для конкретного компонента. GridLayout такая раскладка. Он начнет добавлять компоненты из верхнего левого угла, продолжит движение вправо и перейдет к следующей строке, когда одна строка заполнена.

Вас может заинтересовать GridBagLayout.

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