GridLayout с одним столбцом - PullRequest
1 голос
/ 27 апреля 2010

Сейчас я пытаюсь использовать GridLayout только с одним столбцом. Однако у меня возникла проблема, когда я не хочу, чтобы объект, в данном случае JButton, растягивался на всю ширину JPanel, на которой он находится. Есть ли способ уменьшить ширину JButton, чтобы он не растягивал всю ширину JPanel. Я пытался использовать setPreferredSize и setSize безрезультатно.

Это просто так работает GridLayout или мне чего-то не хватает?

Ответы [ 4 ]

2 голосов
/ 27 апреля 2010

Простое не элегантное решение этого вопроса - встроить JButton в JPanel, а затем вставить JPanel в макет.

1 голос
/ 27 апреля 2010

GridLayout просто делает набор компонентов равным по размеру и отображает их в требуемом количестве строк и столбцов.

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

Как использовать GridLayout

Визуальное руководство для менеджеров по макету

1 голос
/ 27 апреля 2010

BoxLayout, кажется, хорошо работает в этом контексте.См. Указание размеров компонентов , в частности.

0 голосов
/ 27 апреля 2010

Вы можете попробовать:

button.setMaximumSize( button.getPreferredSize() );

Я думаю, он будет привязан слева. В противном случае попробуйте поместить кнопку в другую панель с другим макетом, в котором размер кнопки будет оставаться предпочтительным (например, FlowLayout), а затем поместите эту панель на панель макета сетки.

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