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

Agents de placement/Fenêtres Java Discussion :

Accélérer l'affichage d'une jframe


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Accélérer l'affichage d'une jframe
    Bonjour,

    J'ai constaté lors de l'affichage de ma jframe principale, qu'il y a clairement 2 étapes :

    1- la jframe non décorée s'affiche dans la couleur par défaut (gris)
    2- les composants sont "peints" sur la jframe

    C'est bien logique, sauf que le temps entre 1 et 2 est beaucoup plus grand que le temps des étapes elle- même ! chaque étapes semble prendre quelques ms alors que entre 1 et 2 il y a bien 0.5 sec...ce qui fait que l'utilisateur voit nettement une fenêtre grise sans rien dessus ce qui donne une désagréable impression 8)

    Si quelqu'un a une idée sur le pourqoi de la chose et même une suggestion pour améliorer le passage de 1 à deux je suis preneur !! (précision: dans 2, tous les panels sont non opaque)

    Merci d'avance !!
    dj

  2. #2
    Membre régulier Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    attend d'avoir ajouter tous les composants dans ta JFrame et ensuite tu fais seulement un

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci de la réponse.

    Cependant c'est bien ce que je fais déjà : je crée un runnable que j'envoie à invokeLater. Dans le runnable j'initalise tout le bazar puis setVisible(true).

    voilà, voilà, peut-être cela permettra-t-il de me faire une autre suggestion

    A bientôt,
    et merci !
    dj

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Et en passant par un thread concurrent qui ne s'occupera que de créer ta fenêtre ?
    Lien : http://java.sun.com/docs/books/tutor...c/threads.html
    ( partie SwingWorker )

  5. #5
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    Est-ce que tu peux nous mettre ton code (de manière judicieusement choisi ) pour voir si il n'y aurait un petit problème bête !
    Moi j'ai l'habitude de créer ma JFrame dans le constructeur de ma classe, et d'y invoquer une méthode initGUI(), que je décris, et dans laquelle j'insère tous mes composants, avant de faire un setVisible(true).
    Maintenant, en toute rigueur, quelque soit la méthode que tu utilises, si l'ordre est le même... tu devrais avoir le même résultat.
    Tu es sûr de ne pas lever une exception quelque part qui te ralentirai ?
    Tu n'as pas mélanger Swing et AWT ? (Je ne l'ai jamais fait, je ne sais donc pas si ça pourrait êter une cause !)
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    merci beaucoup de toutes ces réponses !!

    en fait, j'ai simplement fait un nouveau test avec le lnf par défaut et oh surprise, la vitesse d'affichage est multiplié par deux...

    conclusion, c'est mon lnf qui rame, tout simplement ! (et je n'y peux pas grand chose vu que ce n'en est pas moi l'auteur...)

    merci à tous !
    dj

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

Discussions similaires

  1. Problème d'affichage dans une JFrame
    Par farwest dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/01/2009, 18h52
  2. ajuster l'affichage dans une JFrame
    Par MeDReD dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 04/06/2008, 17h33
  3. Détection de l'affichage d'une JFrame.
    Par FredPsy dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 22/02/2008, 10h22
  4. [JFrame] Affichage d'une application toujours au premier plan
    Par michaeljeru dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2006, 22h49
  5. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17

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