Je suis nouveau à SWT. Le projet sur lequel je travaille comporte un composite principal avec 3 composites enfants. le composite supérieur est constitué de boutons, et le composite central sert à afficher le contenu, et le composite inférieur à d'autres fins. Ce qui doit arriver, c'est quand je clique sur un bouton dans le composite supérieur, il doit déclencher le changement de contenu dans le composite central. c'est le code que je suis habitué à faireComment redessiner le composite swt après avoir cliqué sur un bouton pour modifier le contenu de ce composite
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);
}
Le problème est en ce moment après que je clique sur le bouton et, rien ne semble au-dessus du code a été exécuté arriver jusqu'à ce que je remets à la côte de l'interface graphique, le contenu dans le composite milieu apparaîtra.
Je suis confronté au même problème. J'ai composite qui a quelques champs de texte et des boutons. Je veux ajouter un nouveau champ de case à cocher en cliquant sur un bouton. Il est ajouté, mais je ne vois que sur le redimensionnement de l'interface utilisateur. J'ai essayé d'appeler la mise en page sur Composite..mais cela ne fait rien ... Pouvez-vous me dire comment avez-vous résolu ce problème? –