2009-09-03 19 views
0

Я хочу показать статус некоторых файлов в графическом интерфейсе Java. Каждый файл имеет метку и кнопку, цвет кнопки представляет статус файла и щелчок выполняет различные операции. Все это работает, проблема в том, что они не отображаются правильно. Я хочу, чтобы выглядеть какJava gridlayout с пустыми ячейками

[Label 1] [File 1] [File 2] [Label 2] 
[Label 3] [File 3] [File 4] [Label 4] 
etc. 

Для этого я сделал панель с GridLayout

new JPanel(new GridLayout((list.size() + 1) /2,4,3,3)); 

Это работает, если не будет нечетное количество файлов. Затем сетка сама меняет размеры, например, с 3-мя файлами, я получаю сетку 2x3, поэтому метка 2 отображается на следующей строке. Если я проверю нечетное число, а затем добавлю 2 новых JPanels после всех остальных элементов управления, которые он показывает правильно, но мне было интересно, есть ли лучший способ сделать это.

Благодаря

ответ

1

Глядя на JavaDoc на GridLayout.setColumns, кажется, что не указывая количество строк, вылечите свои болезни.

Устанавливает количество столбцов в этом макете до указанного значения. Установка количества столбцов не влияет на макет, если количество строк, заданных конструктором или методом setRows, отличное от нуля. В этом случае количество столбцов, отображаемых в макете, определяется общим количеством компонентов и количеством указанных строк. (курсив мой)

Попробуйте это:

new JPanel(new GridLayout(0,4,3,3)); 
+0

Спасибо, что решил. –

-1

мне было интересно, если есть лучший способ сделать это.

Да, используйте MiGLayout.

+0

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

+0

Мои соболезнования в связи с вашими условиями работы ... –