IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

probleme dispose getchildren


Sujet :

SWT/JFace Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Points : 146
    Points
    146
    Par défaut probleme dispose getchildren
    Bonjour !
    Un peu d'aide ne me ferait pas de mal ! merci :
    J'ai une boucle ou je fais un dispose des enfants d'un composite
    puis je recré les enfants comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (Control c : this.getChildren()) {
                c.dispose();
    }
    for (....) {
                Label label= new Label(this, SWT.NONE);:
                label.setText("toto");           
    }
    s'il rentre dans la 1ere boucle for, mon label ne s'affiche plus.
    pourtant j'ai bien un label dans le composite parent (this).
    Par contre il s'affiche s'il ne fait pas de dispose.
    Pouvez vous m'éclairer, svp ?
    Va vers ton risque, à te regarder ils s'habitueront.

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Une petite question, pourquoi tu fais un dispose pour ensuite recréer des éléments? C'est pour les mettre à jour? Je trouve ça un peu violent...
    Sinon, voici un snippet qui fait la chose et qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Control;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
     
    public class Snippet {
     
    	public static void main(String[] args)
    	{
    		Display display = new Display();
    		Shell shell = new Shell(display);
    		shell.setLayout(new GridLayout());
     
    		Composite composite = new Composite(shell, SWT.NONE);
    		composite.setLayoutData(new GridData());
    		composite.setLayout(new FillLayout());
    		Label test = new Label(composite, SWT.NONE);
    		test.setText("Test1");
     
    		for (Control c : composite.getChildren())
    		{
    			if (!c.isDisposed())
    			{
    				c.dispose();
    			}
    		}
     
    		Label test2 = new Label(composite, SWT.NONE);
    		test2.setText("Test 2");
     
    		shell.pack();
    		shell.open();
    		while (!shell.isDisposed())
    		{
    			if (!display.readAndDispatch())
    			{
    				display.sleep();
    			}
    		}
    		display.dispose();
    	}
    }
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Points : 146
    Points
    146
    Par défaut
    merci !
    Oui je créé des composite dynamiquement en fonction de la base !
    sinon j'avais oublié de faire un layout() à la fin !
    Va vers ton risque, à te regarder ils s'habitueront.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme "Cannot access a disposed object"
    Par the-morpher dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/06/2009, 16h52
  2. Form Dispose probleme
    Par TrollTop dans le forum C++/CLI
    Réponses: 4
    Dernier message: 14/04/2008, 13h51
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo