Компонент SWT нуждается в упаковке () в 3.6.1 - PullRequest
1 голос
/ 28 сентября 2010

Мой мастер некорректно рендерится в Eclipse 3.6.1. Это заставляет меня задуматься: когда нужно использовать Composite.pack ()? Некоторые примеры SWT имеют это, а некоторые нет.

Способ отображения страниц моего мастера зависит от целевой платформы. Если я запускаю свои плагины в 3.5.2, они отображаются правильно, как только я их открываю. Но в 3.6.1 их области содержимого являются пустыми, когда они впервые. На страницах используется GridLayout.

Если я использую мышь, чтобы изменить размер диалогового окна мастера, оно сразу же отлично отрисовывается. Если я вызываю pack () для элемента управления, который передаю DialogPage.setControl (), страница отображается, но она не достаточно широка. Последующее изменение размера фиксирует ширину.

Может кто-нибудь пролить свет? Есть ли общее правило, когда использовать pack ()?

(Помечено как Swing, потому что у экспертов там могут быть ответы, а также SWTers.)

1 Ответ

2 голосов
/ 08 декабря 2010

pack() устанавливает размер цели по умолчанию. Обычно он используется в Shell s, так как обычно Layout родителя заботится о вызове setSize() для виджетов, которыми он управляет. Возможно, вам лучше явно установить Layout (например, FillLayout) на родительском элементе Composite вместо вызова pack().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...