Как да преоразмерите дъщерен прозорец на Shell

Имам дъщерен прозорец, съдържащ формуляр, етикети, комбинации, бутони, подравнени в ред, ред по ред. Формата не е крайна. Има бутон за добавяне на допълнителен ред полета за въвеждане. Донякъде работи за момента... Проблемът е, че когато се добави новият ред, размерът на дъщерния прозорец остава същият, но аз искам да се преоразмерява автоматично.

дъщерният прозорец е стандартна SWT обвивка

Shell ConstantEditWindow = new Shell(parent);

Имам бутон със sth като този:

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

            populateConstantMain(tariffConstantsOfType, descComp, descCompLayout, true);

            ConstantEditWindow.layout();

        }
    });

но идентификаторът не работи :/ дъщерният прозорец няма да преоразмерява ;(


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