Изменение размера композита с помощью FormLayout, когда его дочерний элемент становится шире, чем отображаемая область - PullRequest
1 голос
/ 15 марта 2012

Я использую SWT.У меня есть родительский Composite (уровень 1), который использует FormLayout, и он содержит среди прочего еще один Composite (уровень 2) также FormLayout.Этот составной элемент имеет несколько дочерних элементов (уровень 3), которые становятся видимыми и невидимыми в зависимости от пользовательского ввода.

Проблемный сценарий:

  1. уровня 3 композиции не видны
  2. изменен размер составного уровня 1 -> это также изменяет составной уровень уровня 2
  3. изменения пользовательского ввода -> теперь видны композиты уровня 3
  4. проблема -> составной слой 2 не изменяется, а уровень 3Композиты видны не все

Мне нужно изменить размер композита уровня 1, чтобы правильно изменить размер композита уровня 2, что не очень удобно для пользователя.Я перепробовал много вещей, но безуспешно, и поскольку все это является частью более крупного приложения, я не могу заменить FormLayout чем-то другим.

У кого-нибудь есть мнение по этому поводу?Есть ли какой-нибудь механизм, как заставить FormLayout динамически изменять размер композитов?

Спасибо, Ян

1 Ответ

0 голосов
/ 16 марта 2012

Как и любая смелая проблема, у этой проблемы было простое решение. Чтобы сделать композиты уровня 3 видимыми, необходимо было вызвать getParent().layout(), чтобы правильно изменить размер композита уровня 2

...