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

Eclipse Java Discussion :

Raffraichir une vue (view)


Sujet :

Eclipse Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Par défaut Raffraichir une vue (view)
    Salut,

    Je suis en train de créer une vue qui affiche des éléments graphiques.
    Lorsque je clic sur un bouton, ça lance une méthode d'un objet qui lit un fichier et à chaque nouvelle ligne, demande à la vue d'afficher l'éléments graphique correspondant (par appel de méthode).

    Le problème est que les éléments graphiques apparaissent à la fin de l'exécution. Mais j'aimerai que la mise à jour d ela vue ça fasse en temps réel.

    Comment faire pour mettre à jour une vue ? Et comment une vue eclipse se met à jour toute seule ??

    Merci pour votre aide

  2. #2
    Membre confirmé Avatar de titus55
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 115
    Par défaut
    Bonjour,
    pour mettre à jour ton interface, utilise la methode repaint() sur ton conteneur de composants.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Par défaut
    Le conteneur de composant, c'est quoi ?
    Est-ce l'objet Composite parent passé en paramètre lors de la création de la vue (createPartControl(Composite parent)) ?

    Car cet objet n'a pas de méthode repaint, il y a seulement pack,redraw et update. Et aucunes des trois ne fonctionnent, lors que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vueGraph.getParent().update;
    Le programme est bloqué.

  4. #4
    Membre éclairé Avatar de Liquidsoul
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Par défaut
    Citation Envoyé par mikaoul
    Le conteneur de composant, c'est quoi ?
    C'est ce le "conteneur" où tu as placer tes éléments à afficher. Par exemple, un JPanel ou carrément un JFrame (mais ca peut être aussi plein d'autres types d'éléments dérivant de Component )

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Par défaut
    ok, c'est bien ce que je pensais.
    En fait dans la méthode createPartControl, j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	public void createPartControl(Composite parent) {
    		this.parent = parent;
    		this.canvas = new PSWTCanvas(parent,0);
    		layerPlaces = new PLayer();
    		this.canvas.getLayer().addChild(layerPlaces);
    	}
    je fais un this.canvas.repaint() mais ça n'a aucun effet.

    (à savoir que PSWTCanvas est dans une librairie graphique (Piccolo), elle étend Composite)

  6. #6
    Membre confirmé Avatar de titus55
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 115
    Par défaut
    Essaye d'appliquer le repaint sur ta JFrame directement.
    Tu appelles bien repaint a chaque fois que tu ajoutes un composant graphique?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Par défaut
    ma JFrame ? Je n'en ais pas, tu veux parler de mon PSWTCanvas ou du Composite (parent) ?

    Oui, j'effectue un repaint sur le canvas à chaque ajout.

    En fait, j'ai une boucle que lit un fichier et à chaque (à peu près), un nouvelle élément est ajouté et j'effectue un repaint. Donc normalement je devrais voir l'affichage au fur et à mesure.
    Est-il possible que comme il y a beaucoup de repaint et que ça peu prendre un certain temps et que ma boucle est plus rapide, le repaint peut être ignoré ?

  8. #8
    Membre confirmé Avatar de titus55
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 115
    Par défaut
    ma JFrame ? Je n'en ais pas, tu veux parler de mon PSWTCanvas ou du Composite (parent) ?
    Je veux parler du composant qui contient tout les autres en fait (le plus souvent c'est une JFrame).

    Est-il possible que comme il y a beaucoup de repaint et que ça peu prendre un certain temps et que ma boucle est plus rapide, le repaint peut être ignoré ?
    Je ne pense pas que le problème vienne de là.

    Normalement le repaint devrait rafraichir ton écran à chaque ajout... .
    Essaye de faire des tests sur tes composants graphiques.

    ++

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Par défaut


    Je te conseille d'oublier les méthodes redraw() ou autres pack() et update() ...
    J'ai eu ce genre de PB aussi.
    Essaie plutôt la méthode layout() sur tes objets ( voire getParent().layout() )

    Good Luck

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Par défaut
    bon, la méthode layout() ne fonctionne pas non plus :-(

    Je vais essayer de faire un layout() en cascade ou alors de threader la partie qui lit le fichier et demande l'affichage.

    Merci

    --------
    Après plusieurs tests, layout() ne fonctionne pas, la gestion par évènement non plus.

Discussions similaires

  1. [Drupal] liste déroulante dans un filtre exposé dans une vue (views 3, Drupal 7)
    Par F.Victoire dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 12/05/2014, 15h23
  2. Raffraichir une Vue matérialisée
    Par LBO72 dans le forum SQL
    Réponses: 1
    Dernier message: 04/02/2010, 10h11
  3. [Plugin][View][TreeView] Création d'une vue.
    Par bitou dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 20/11/2007, 12h57
  4. [MySQL] Probleme d'exploitation d'une vue (VIEW) pour un tableau
    Par nico4731 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 03/02/2006, 14h26
  5. [VIEW] comment importer une vue ?
    Par _Eric_ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/11/2004, 22h20

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