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 :

SWT mise à jour de composant


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut SWT mise à jour de composant
    Bonjour,

    J'ai créer une interface de saisie utilisateur, celle-ci contient une option qui permet d'ajouter un composant.

    Le problème c'est quand je réaffiche cette page. J'affiche toutes les nouvelles options plus la nouvelle. J'ai donc un redondance.

    J'ai essayé de supprimer les anciennes options par la fonction dispose() et en appelant composite.getChildren().

    Je ne sais pas si c'est la bonne méthode, pouvez-vous m'éclairer ! merci.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Points : 255
    Points
    255
    Par défaut
    Bonjour Solika,

    Si je comprends bien tu cherches à recréer certains contenus de ta page sans la reconstruire entièrement ? Et ce, suite à une action de l'utilisateur ?

    L'idéal, serait que tu postes le code concerné, mais dans la théorie pour ce genre de comportement, il nécessite de :
    - faire un "dispose()" sur le composant à supprimer
    - créer une nouvelle instance du composant à créer et l'assigner au bon parent
    - Rafraichir l'ihm par une méthode "pack()", ou "redraw()" et "update()".
    La forme même des pyramides prouve que l'être humain tend à en faire de moins en moins.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut
    Voici le code du "widget qui affiche les caractéristiques d'un badge :

    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
    48
    49
    50
    51
    52
    53
     
    package fullscreen;
     
    import java.util.ArrayList;
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.layout.RowLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Text;
     
    import dao.StatutBadgeDAO;
     
    import model.Badge;
    import model.Statut;
     
    public class BadgeGUI {
    	private Badge badge;
    	private Composite principal;
     
    	public BadgeGUI (Badge badge, Composite principal) {
    		this.badge = badge;
    		this.principal = principal;
     
    		ArrayList<Statut> listeStatutBadge = StatutBadgeDAO.getListStatut();
    		int sizeListeStatut = listeStatutBadge.size();
     
    		if(sizeListeStatut>0) {
    			RowLayout layout = new RowLayout();
    			//layout.numColumns = sizeListeStatut + 1;
    			Composite compBadge = new Composite(principal, SWT.NULL);
    			compBadge.setLayout(layout);
    			//compBadge.setSize(100, 40);
     
    			Text text = new Text(compBadge, SWT.NONE);
    			text.setText("Badge "+badge.getNumeroBadge());
     
    			for(Statut statut: listeStatutBadge) {
    				//RowLayout row = new RowLayout();
     
    				Button radioButton = new Button(compBadge, SWT.RADIO);
    				radioButton.setText(statut.getIntitule());
    				if(statut.getIntitule().equals(badge.getStatut().getIntitule())) {
    					radioButton.setSelection(true);
    				}
     
    			}
    			compBadge.layout();
    		}
    		principal.layout();
    	}
    }

    Ci-dessous le code qui doit m'afficher les badges

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    		// Cinquième ligne bis ; Liste Badge
    		fillLayoutBadge = new FillLayout(SWT.VERTICAL);
    		//compositeContienListeBadge = new Composite(screen, SWT.NULL);
    		compositeListeBadge = new Composite(screen, SWT.NULL);
    		compositeListeBadge.setLayout(fillLayoutBadge);
    		gridDataListeBadges = new GridData();
    		gridDataListeBadges.horizontalAlignment = SWT.FILL;
    		gridDataListeBadges.grabExcessHorizontalSpace = true;
    		gridDataListeBadges.horizontalSpan = 6;
    		compositeListeBadge.setLayoutData(gridDataListeBadges);
     
    		compositeListeBadge.setVisible(true);
    Enfin le code qui devrait mettre à jour la liste de badge (en cliquant sur un bouton modifier de la même classe que le bout de code ci-dessus).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    		if(arrayBadges.size()>0) {
    			Control[] control = compositeListeBadge.getChildren();
    			for(int i=0; i<control.length; i++){
    				control[i].dispose();
    			}
     
     
    		for(Badge badge: arrayBadges) {
    			BadgeGUI badgeGUI = new BadgeGUI(badge, compositeListeBadge);

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Points : 255
    Points
    255
    Par défaut
    As tu essayé de rafraichir ton ihm après la reconstruction de tes items ?
    La forme même des pyramides prouve que l'être humain tend à en faire de moins en moins.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut [Résolu]
    Bonjour,

    J'ai intercalé un layout et utilisé dispose()

    Voili voila merci de vos réponses, mon problème est résolu.

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par solika Voir le message
    Voili voila merci de vos réponses, mon problème est résolu.
    Merci de ton retour, ça pourra servir à quelqu'un d'autre à l'avenir. Tu peux donc passer le topic en résolu, non ? (le bouton en bas)
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2009, 17h17
  2. Réponses: 1
    Dernier message: 27/08/2008, 08h40
  3. [SWT] Mise à jour d'une vue
    Par Nikk0 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 16/06/2007, 13h13
  4. Mise à jour des composants TMS
    Par kurkaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2007, 21h09
  5. [D7] mise à jour de composants => compilation impossible
    Par Magnus dans le forum Composants VCL
    Réponses: 6
    Dernier message: 27/09/2005, 14h53

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