У меня есть GridLayout
внутри Composite
, и у меня есть две колонки внутри. Я хочу иметь ширину столбца 75% и 25% от ширины Shell
. Как это сделать?Установка ширины столбцов GridLayout
ответ
Справа, здесь вы идете: Используйте значения GridData#widthHint
, чтобы заставить определенную ширину Composite
s. Рассчитайте ширину на основе ширины Shell
:
public static void main(String[] args)
{
Display display = Display.getDefault();
final Shell shell = new Shell(display);
shell.setLayout(new GridLayout(2, false));
Composite left = new Composite(shell, SWT.BORDER);
Composite right = new Composite(shell, SWT.BORDER);
final GridData leftData = new GridData(SWT.FILL, SWT.FILL, true, true);
final GridData rightData = new GridData(SWT.FILL, SWT.FILL, true, true);
left.setLayoutData(leftData);
right.setLayoutData(rightData);
shell.addListener(SWT.Resize, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
Point size = shell.getSize();
leftData.widthHint = (int) (size.x * 0.75);
rightData.widthHint = size.x - leftData.widthHint;
System.out.println(leftData.widthHint + " + " + rightData.widthHint + " = " + size.x);
}
});
shell.pack();
shell.open();
shell.layout();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
После старта:
После изменения размера:
Привет, спасибо за ответ. мои вопросы были немного неправильными. после повторной калибровки вторая ширина столбца не должна вообще меняться. предположим, что в начале ширина столбца равна 400 пикселям, а после переопределения она должна оставаться 400, но ширина первого столбца может измениться до 0, но вторая длина столбца не должна меняться. Спасибо за вашу помощь. – Jack
@Jack Это должно быть достаточно легко изменить самостоятельно, правильно;)? Если нет, сообщите мне, и я могу обновить свой ответ. – Baz
Большое спасибо Baz !! – Jack
- 1. Изменение ширины GridLayout
- 2. Установка ширины столбцов в таблицеLayout
- 3. Java Gridlayout: число переменных столбцов в зависимости от ширины панели
- 4. Установка максимальной ширины столбцов пропорционально в silverlight
- 5. Установка минимальной ширины столбцов в SSRS
- 6. Установка ширины столбцов таблицы меньше, чем содержимое
- 7. GridLayout неверное число столбцов
- 8. Установка ширины TableColumns динамически
- 9. Qt GridLayout охватывающих несколько столбцов
- 10. SWT GridLayout автоматический счетчик столбцов
- 11. Установка ширины сетки Javafx
- 12. Позволяет GridLayout установить собственное количество столбцов
- 13. Установка ширины столбцов для всех таблиц в документе
- 14. Установка ширины столбцов для <table> в Django
- 15. Установка максимальной ширины до 6 столбцов в бутстрапе
- 16. Установка ширины столбцов для списка в шаблоне данных
- 17. RecyclerView GridLayout ширина полная ширина и половина ширины
- 18. установка ширины div jquery
- 19. Установка максимальной ширины таблицы
- 20. Установка ширины TextField
- 21. BootstrapWP - установка фиксированной ширины
- 22. Установка минимальной ширины NSSplitViews
- 23. Установка ширины объекта formattable()
- 24. Установка ширины выпадающие
- 25. Установка ширины до 100%
- 26. Highcharts - динамическая установка ширины столбца
- 27. Установка ширины столбца в угловой сетке ui
- 28. Пропорционально увеличение ширины столбцов
- 29. Ширины столбцов DataGrid
- 30. Таблицы HTML + Ширины столбцов
Это не очень легко достичь с помощью 'GridLayout ', но есть много других' Layout'. Посмотрите на [это] (http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html), особенно часть о 'FormLayout'. – Baz
Привет, спасибо за ответ. Я знаю о другом макете, но хочу его в макете. Причина в том, что когда я изменяю размер оболочки/композицию или перемещаю ее справа налево (по горизонтали), тогда ширина 2-го столбца остается постоянной до тех пор, пока первый не будет полностью свернут. Спасибо за поддержку. – Jack