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

AWT/Swing Java Discussion :

Problème d'affichage surperposition de JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut Problème d'affichage surperposition de JPanel
    Bonjour,

    J’ai une appli qui affiche plusieurs Jpanel.
    Il y a une tâche de fond (calcul) à la fin il y a un nouvel affichage (repaint) puis un nouveau calcul.
    J'ai 2 problèmes :
    le premier sur l'affichage direct : il y a des panels qui se chevauchent de temps en temps ou des backgrounds qui sont à moitié rempli
    le deuxième et que j'enregistre de temps en temps mon interface et là les images enregistrées ont les mêmes problèmes. Etrangement, si la fenêtre reste en icone il y a beaucoup moins de problèmes.
    J'ai lu dans le forum que cela pouvait venir d'une mauvaise utilisation de la methode repaint. Donc j'ai passé toute l'appli au peigne fin pour éliminer tous les repaint superflue. Mais cela continu....
    Y a t il d'autre piste ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Tu modifies l'interface graphique dans des threads utilisateur?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Bonjour,

    Je ne sais pas très bien ce tu appelle thread utilisateur. Mais si c'est, par exmple la possibilité de changer le background d'un panel par l'intermédiaire d'un bouton de l'interface graphique, c'est oui. Sachant que les action des boutons sont mis dans un thread.
    Il y a aussi pour quelque panel une petite anim (une image qui clignote)

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Il faut te renseigner sur les threads utilisateurs, que l'on appelle aussi Event Dispatching Thread, car cela peut venir de là : voir Threads et performance avec Swing ou Concurrency in Swing.

    Sinon, d'autres questions pour chercher :
    • Est-ce que la tâche de fond fait d'autres choses qu'un repaint sur l'interface graphique ?
    • Quel type de layout utilises-tu ?
    • Est ce que tu as des paintXXs perso ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Bonjour,

    Ma tâche de fond affiche des données quelle reçoit après les avoir traitées.
    Layout utilisés sont des BorderLayout.
    Non j'utilise pas de paintXXs perso (je ne sais pas ce que s'est ). J'ai juste surcharger la méthode paintComponent.

    Je n'est presque plus de problème d'affichage depuis ma traque des repaint. Il y en a encore quand j'exécute un grand nombre d'action utilisateur via des boites de dialog qui modifie les graphiques.
    Par contre, j'ai un phénomène étrange : si ma fenêtre est en icone les enregistrements sont correct, mais si la fenêtre est ouverte alors il y a plien de décalage entre les différents panels.

    voici le code pour l'enregistrement : (il vient du net)
    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
    int w = MonInterface.panelGeneral.getWidth();
                int h = MonInterface.panelGeneral.getHeight();
                BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
                Graphics2D graph = image.createGraphics();
                g.G.paint(graph);
                graph.dispose();
                OutputStream out = null; 
     
                try 
                 {
                    out = new BufferedOutputStream(new FileOutputStream(adress+".jpeg"));
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
                        encoder.encode(image); 
                        out.close();
                    }
     
                } 
                catch (Exception exc)
                {exc.printStackTrace();}
                catch (Throwable t) {t.printStackTrace();} 
     
            }
    merci de vos réponses

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Citation Envoyé par marcel72
    Bonjour,

    Ma tâche de fond affiche des données quelle reçoit après les avoir traitées.
    Le fais-tu en faisant attention à l'Event Dispatching Thread ?

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

Discussions similaires

  1. Problème d'affichage d'un JPanel dans un JFrame.
    Par Patrick95500 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 18/09/2014, 13h51
  2. Problème d'affichage d'une image [JPanel]
    Par wassim_boy dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/05/2012, 19h49
  3. Problème d'affichage de JPanel (et de synchronisation?)
    Par NonoMoreno dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/02/2009, 04h12
  4. Réponses: 3
    Dernier message: 07/07/2008, 23h03
  5. Problème d'affichage du contenu de JPanel
    Par Mic75 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 13/12/2007, 00h53

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