2013-06-26 5 views
3

Я хочу вырастить только последний компонент в панели, чтобы заполнить оставшееся вертикальное пространство.MigLayout растет только последний ряд

я в настоящее время:

panel.setLayout(new MigLayout("inset 0, filly", "[grow, fill, right][grow, fill, left]")); 

который добавляет отступы после каждого компонента, чтобы заполнить оставшееся пространство по вертикали. Есть ли способ сказать MigLayout не добавлять прописку и вырастить последнюю строку?

Последняя строка пристыкован упаковывают что меняет все:

panel.add(new JScrollPane(getTable()), "newline, dock south"); 

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

ответ

2

Похоже, что док-станция действительно имеет значение, заменяя ее назойливым растущим клеточным ограничением (и не зависает в макете) отлично работает. Может быть вариант, если вы можете жить без док-станции:

panel.add(new JScrollPane(new JTable(8, 5)), "span, pushy, growy"); 
1

Я решил это, добавив ограничение компонента: height :100%: и удалив ограничение на размещение filly.

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

Так что, когда вы используете размер ограничение :pref: Я считаю, что это говорит «До указанного size`

И когда вы min:: я думаю, что решает„по крайней мере, указанный размер“?

Смежные вопросы