Привет, ребята и дамы,Создание FormLayout строк и столбцов динамически (во время выполнения)
, как я позволил Затмения WindowBuilder создать мне JPanel с FormLayout, я хотел бы сделать это творение быть динамичным, так как программа I Это написано так, чтобы избежать 1000 строк. Я использовал следующий код:
JPanel pData = new JPanel();
pData.setBounds(10, 232, 381, 163);
FormLayout fLayout= new FormLayout(new ColumnSpec[]{}, new RowSpec[]{});
int numCols = 5;
int numRows = 10;
for(int i=1;i<=numCols;i+=2)
{
fLayout.insertColumn(i, FormFactory.RELATED_GAP_COLSPEC);
fLayout.insertColumn(i+1, FormFactory.DEFAULT_COLSPEC);
}
for(int j=1;j<=numRows;j+=2)
{
fLayout.insertRow(j, FormFactory.RELATED_GAP_ROWSPEC);
fLayout.insertRow(j+1, FormFactory.DEFAULT_ROWSPEC);
}
pData.setLayout(fLayout);
getContentPane().add(pData);
Но запустить программу, я получаю пачку ошибок, начиная с:
«Индекс столбца 1 должен быть в диапазоне [1, 0]»
Изменение индекса в циклах (-ов) просто изменяет число в середине этого текста ошибки, но остальное остается неизменным.
Что я делаю неправильно? Возможно ли даже создать FormLayout динамически? Я бы очень признателен за вашу помощь!
Дополнительная информация: Причина, по которой я использую FormLayout, состоит в том, что столбцы имеют разные размеры. Я знаю, что GridBagLayout также может это сделать, но для получения одинаковых результатов в отношении вставок и положения требуется больше строк и цифр. Но если это единственная разумная альтернатива, я соглашусь с ней ... пока она динамична ;-)
1) Для лучшей помощи раньше, отправьте сообщение [SSCCE] (http://sscce.org/). 2) 'pData.setBounds (10, 232, 381, 163); Java GUI, возможно, придется работать на нескольких платформах, на разных разрешениях экрана и с использованием разных PLAF. Таким образом, они не способствуют точному размещению компонентов. Для надежного графического интерфейса вместо этого используйте диспетчер компоновки или их комбинации вместе с макетом и границами для пробела, чтобы организовать компоненты. –
Спасибо, Андрей за ваш быстрый ответ! 1) Я буду помнить SSCCE в следующий раз! Это мой первый пост. Я изучаю <:-) 1a) Как я могу сделать это SSCCE? Я думал, что это уже достаточно коротко ... Я не знаю, как сделать это еще проще, не создавая проблемы с большей зарплатой. 2) pData.setBounds (...) был создан WindowBuilder. Я этого не делал. Но ты прав. Я сделаю это гибким. – Stacky
Будет ли это ['GroupLayout'] (http://stackoverflow.com/a/14858272/230513) альтернативой? – trashgod