Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > SWT: Перерисовка


Автор: YuG 25.9.2007, 17:54
Добрый день.

Все найденные темы на форуме касаются Swing'a, а вот с SWT не нашел.

Собственно, вопрос:
каким образом, динамически добавлять Composite внутрь другого Composite?

Идея такая:
Код

public class EditablePanel extends BaseComposite {

    private Group mainGroup;

    private EditableForm editableForm;

    /**
     * Constructor.
     */
    public EditablePanel(Composite parent, int style) {
        super(parent, style);
        setLayout(new FillLayout());
        init();
    }

    protected void init() {

        mainGroup = new Group(this, SWT.NONE);
        mainGroup.setLayout(new FillLayout(SWT.VERTICAL));

        setMarketData(new Root());
    }

    public void setMarketData(MarketData marketData) {
        
        if (marketData == null) {
            return;
        }

        editableForm = new EmptyForm(mainGroup, SWT.NONE);
        
        if (marketData instanceof Recipient) {
            editableForm = new RecipientForm(mainGroup, SWT.NONE);
        } else if (marketData instanceof Area) {
            editableForm = new AreaForm(mainGroup, SWT.NONE);
        }

        //repaint();
        update();
        redraw();
    }

}


Что надо написать вместо этих update(); и redraw(); для того, чтоб главный Composite перекомпоновался?

Автор: YuG 25.9.2007, 18:35
Каким-то образом помогло:
Код

        mainGroup.layout();
        layout();


Вопрос снят.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)