Как изменить размер дочернего окна Shell

У меня есть дочернее окно, содержащее форму, метки, комбо, кнопки, выровненные по строке, построчно. Форма не конечна. Есть кнопка для добавления дополнительной строки полей ввода. На данный момент это вроде работает... Проблема в том, что когда добавляется новая строка, размер дочернего окна остается прежним, однако я хочу, чтобы он автоматически изменялся.

дочернее окно является стандартной оболочкой SWT

Shell ConstantEditWindow = new Shell(parent);

У меня есть кнопка с чем-то вроде этого:

addDesc.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {

            populateConstantMain(tariffConstantsOfType, descComp, descCompLayout, true);

            ConstantEditWindow.layout();

        }
    });

но id не работает:/ размер дочернего окна не изменится ;(


person mentis    schedule 25.05.2012    source источник
comment
Предоставляет ли класс SWT Shell метод repack() или что-то подобное по духу?   -  person sarnold    schedule 26.05.2012
comment
нет ;( есть только .redraw() но он не работает :/   -  person mentis    schedule 27.05.2012


Ответы (1)


Прочитайте это: http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html

И API: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fwidgets%2Fpackage-summary.html

  • .layout() размещает дочерние элементы элемента управления
  • pack() вызывает изменение размера получателя до его предпочтительного размера.

Также соглашение гласит, что имя константы в java должно быть ALL_IN_CAPITAL.

person Fabian Zeindl    schedule 27.05.2012
comment
Спасибо :) Мне удалось решить проблему, инкапсулировав мои тексты, комбо и т. д. в ScrolledComposite :) - person mentis; 28.05.2012