Установите минимальную высоту для каждого компонента в JScrollPane - PullRequest
0 голосов
/ 02 апреля 2012

Могу ли я реализовать какой-либо метод, который обеспечит минимальную высоту каждой кнопки на панели?Я пытался использовать метод itembutton.setSize(), но это не имеет никакого эффекта.

JPanel itemPanel = new JPanel();

itemPanel.setLayout(new GridLayout(0,1));

for(final Item i: list){
    JButton itemButton = new JButton(i.getName());
    itemPanel.add(itemButton);
}

JScrollPane itemPane = new JScrollPane(itemPanel);

1 Ответ

0 голосов
/ 02 апреля 2012

itembutton.setMinimumSize(minimumSize)?

Редактировать: Просто обнаружил, что, как и этот Java-учебник , похоже, говорит, что с GridLayout это сделать невозможно.

Каждый компонент занимает все доступное пространство в своей ячейке, и каждая ячейка имеет точно такой же размер

Так что, думаю, вам придется попробовать другой макет. Я могу предложить (не знаю, хорошо ли он подходит, но он работает) GridBagLayout. Пример с 2 кнопками:

itemPanel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.weightx = 0.5;
itemPanel.add(new JButton("A"), c);
c.gridx = 1;
c.weightx = 0.5;
itemPanel.add(new JButton("B"), c);

Посмотрите на http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html

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