Я новичок в SWT. В проекте, над которым я работаю, есть основной композит с тремя дочерними композициями. Верхний композит состоит из кнопок, а средний композит предназначен для отображения контента, а нижний - для других целей. Что должно произойти, так это то, что когда я нажимаю кнопку в верхнем композите, она должна вызвать изменение содержимого в среднем композите.
это код, который я использовал для этого
public void widgetSelected(SelectionEvent e) {
/* Retrieve the contents that are currently in middle composite*/
Composite currentCenterComposite = EMWindow.getCenterCompsiteState();
/* Retrieve the main composite*/
Composite outerComposite=EMWindow.getOuterCompsiteState();
if ((currentCenterComposite != null) && (!currentCenterComposite.isDisposed())) {
/* Remove children that are already laid out */
Object[] children = currentCenterComposite.getChildren ();
for (int i = 0; i < children.length; i++) {
((Composite)children[i]).dispose();
}
}
currentCenterComposite = new CenterComp(currentCenterComposite);
GridData gd_centerComposite = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
gd_centerComposite.minimumHeight = 50;
currentCenterComposite.setLayoutData(gd_centerComposite);
currentCenterComposite.layout(true);
//currentOuterComposite.layout();
outerComposite.layout(true);
}
Проблема сейчас в том, что после того, как я нажал кнопку и код был выполнен выше, ничего не происходит, пока я не изменю размер графического интерфейса, тогда появится содержимое в средней композиции.