2010-05-30 4 views
1

Я использую TreeViewer внутри jizard WizardPage, и начальный ввод в дерево заставляет WizardPage расти вертикально, чтобы он мог отображать все значения дерева. При расширении одного из значений дерева, вертикальная полоса прокрутки работает так, как ожидалось. Я хотел бы сначала установить размер дерева, чтобы он был исправлен, и полоса прокрутки уже показана, когда WizardPage сначала нарисован, но для меня это не особенно очевидно: метод setSize на дереве TreeViewer не работает Кажется, ничего не делает.Как установить начальный размер TreeViewer?

Любая помощь будет оценена!

+0

какой макет вы используете? – andyczerwonka

+0

и какие layoutdata? – drstupid

+0

Композитный контроль = новый составной (родительский, SWT.NONE); control.setLayout (новый GridLayout (2, false)); ... CheckboxTreeViewer treeViewer = новый CheckboxTreeViewer (управление, SWT.V_SCROLL); treeViewer.getTree(). SetLayoutData (новый GridData (SWT.FILL, SWT.FILL, true, false, 2, 1)); – Jeff

ответ

0

Просто для записи на этот старый вопрос:

Мы решить эту проблему в наших приложениях с помощью собственного менеджера компоновки, который мы можем установить фиксированные размеры некоторых элементов управления (с свинг мы сделали, что с помощью component.setPreferredSize(size)) , Если такой фиксированный размер не используется, мы вычисляем предпочтительный размер элемента управления при выполнении макета. Это предотвращает создание элементов управления все больше и больше места в зависимости от содержимого элемента управления, когда пользователь изменяет размер окна приложения или диалогового окна.

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