2013-06-07 2 views
1

Я использую SWT GridLayout для отображения различных изображений, таких как чудо - сетка. Теперь моя проблема заключается в том, что GridLayout всегда имеет фиксированное количество столбцов, скажем 5. Есть ли способ сделать GridLayout гибким, чтобы количество столбцов увеличивалось или уменьшалось в зависимости от размера родительского компонента? (Например, при изменении размера окна).SWT GridLayout автоматический счетчик столбцов

Я не смог найти вариант в GridLayoutConstructor или GridData. A RowLayout не отвечает моим потребностям

+0

Можете ли вы использовать setColumns() 'ans' setRows() 'в прослушивающем изменении размера? – Djon

ответ

1

Вы можете изменить макет во время выполнения.

При изменении размера вашего родительского компонента измените его свойство GridLayoutnumColumns и позвоните по адресу layout(true) на родительский компонент.

final Shell shell = new Shell(); 

final GridLayout layout = new GridLayout(3, true); 
shell.setLayout(layout); 

shell.addControlListener(new ControlAdapter() { 
    @Override 
    public void controlResized(ControlEvent event) { 
     int newColumnNumber = 5; // Calculate your new value here. 
     layout.numColumns = newColumnNumber; 
     shell.layout(true); 
    } 
}); 
+0

Я попробую и дам вам знать, помогло ли это – Mirco

+1

Это было не точное решение для моей проблемы, но это помогло мне многого добиться в правильном направлении - спасибо – Mirco

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