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 :

[SWING] Rafraichissement de fenêtre


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 69
    Points
    69
    Par défaut [SWING] Rafraichissement de fenêtre
    Bonjour à tous,

    Je ne poste pas souvent mais la, j'aimerais savoir si certains ont trouvé des solutions aux rafraichissement de fenêtre.
    Je m'explique : j'ai une jFrame dans laquelle j'utilise un jXMultiSpliPane qui lui même est géré par un MultiSpliLayout.
    Dans une partie de mon SplitPane j'avais un jTaskPane, tout se passait bien jusqu'à ce que je veuille le mettre dans un scrollPane. Depuis ce moment, lors de l'execution de ma fenêtre rien ne s'affiche directement.
    J'ai réussi à résoudre mon problème en faisant appel à la méthode pack() de ma JFrame mais je ne suis pas sur que ca soit bien propre.
    J'ai essayé toutes les méthodes vu dans tous les forums (repaint, update, validate, revalidate...) et rien n'y fait. Il n'y a que pack() qui marche.
    Toute mes prefferedSize sont fixées... Avez vous une idée ou bien je laisse ma modif telquel?

    Je ne peux pas vous coller le code car il est trop important et vous n'y veriez pas tout.

    Si vous avez une idée, n'hésitez pas sinon pas grave.
    Merci.

    Cordialement
    ________________________________________
    Evitez les pavés de codes! C'est dur et chiant à lire!
    Pensez aux clostro!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Salut,
    pour ajouter un composant à un JScrollPane il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new JScrollPane(tonComposant)
    et non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monJScrollPane.add(tonComposant)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monJScrollPane.getViewPortView().add(tonComposant)
    devrait marcher egalement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Le code est géré par netbeans. Mais il est correct puisqu'il fait un setViewportView(monComposant)
    ________________________________________
    Evitez les pavés de codes! C'est dur et chiant à lire!
    Pensez aux clostro!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    une piste -> la methode pack() appel la methode validate.
    De plus il faut savoir que le scrollPane utilise un ScrollPaneLayout(on s'en doutait ) donc peut-être qu'il ne gère pas tes composants "exotique"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    J'avais vu pour la méthode pack(). J'ai essayé de bidouiller avec validate mais ca n'y change rien. J'ai un petit caré qui s'affiche avec validatetree() mais rien de plus.
    Pour ce qui est du layout du scrollpane, il semble bien fonctionner dans la mesure ou une fois l'appel à ma méthode pack(), j'ai le comportement souhaité.
    Ou alors, peut être que j'ai un composant qui a besoin d'un appel à validate() mais je ne sais pas lequel en l'occurence.

    Merci en tout cas.
    ________________________________________
    Evitez les pavés de codes! C'est dur et chiant à lire!
    Pensez aux clostro!

  6. #6
    FMC
    FMC est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    j'ai un soucis avec le rafraichissement des fenêtres aussi.
    J'ai utilisé NetBeans pour faire mon interface, j'ai ensuite repris le code dans mon notepad pour créer mon appli, n'était pas très doué avec cet IDE encore.

    Dans mon application, depuis ma classe principale qui contient la fenêtre à afficher, j'appelle mes autres classes qui effectuent des tâches rapides et concentrées, Socket, etc...

    Entre chaque boucle, prenons un exemple une application qui fait des "PING", depuis ma classe principale j'ai une boucle qui ping() disons 15x la cible. Entre chaque boucle, j'affiche le résumé dans un textarea. Mais il faut attendre que les 15 ping soient fini pour voir ce qui s'est affiché. Or ça m'ennuie parce que l'application "freeze" dès le lancement des pings.

    J'ai cherché pas mal, mais comme j'ai fais ça avec NetBeans, je n'arrive pas à utiliser des fonctions telles que revalidate() qui génèrent une erreur de compilation. J'ai aussi essayé de faire pack() à chaque affiche de mon message, mais rien n'y fait. Le bouton qui déclenche les pings lui-même est bloqué.

    Je pensais utilisé un Thread d'actualisation, mais je ne sais pas non plus quelle méthode utilisé.


    Merci d'avance !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par FMC Voir le message
    Bonjour,

    j'ai un soucis avec le rafraichissement des fenêtres aussi.
    J'ai utilisé NetBeans pour faire mon interface, j'ai ensuite repris le code dans mon notepad pour créer mon appli, n'était pas très doué avec cet IDE encore.

    Dans mon application, depuis ma classe principale qui contient la fenêtre à afficher, j'appelle mes autres classes qui effectuent des tâches rapides et concentrées, Socket, etc...

    Entre chaque boucle, prenons un exemple une application qui fait des "PING", depuis ma classe principale j'ai une boucle qui ping() disons 15x la cible. Entre chaque boucle, j'affiche le résumé dans un textarea. Mais il faut attendre que les 15 ping soient fini pour voir ce qui s'est affiché. Or ça m'ennuie parce que l'application "freeze" dès le lancement des pings.

    J'ai cherché pas mal, mais comme j'ai fais ça avec NetBeans, je n'arrive pas à utiliser des fonctions telles que revalidate() qui génèrent une erreur de compilation. J'ai aussi essayé de faire pack() à chaque affiche de mon message, mais rien n'y fait. Le bouton qui déclenche les pings lui-même est bloqué.

    Je pensais utilisé un Thread d'actualisation, mais je ne sais pas non plus quelle méthode utilisé.


    Merci d'avance !

    Désolé de ne répondre que maintenant, je ne fais que lire ton message.
    Pour ma part le problème semble lié avec les dimensionnements de mes composants (surtout ceux issus de SWINGX). Je pense avoir une piste pour résoudre mon problème.

    Pour ce qui est de ton problème, de ce que j'ai compris, c'est plutot un problème de freeze. Peut être devrais tu essayer de lancer tes pings dans un autre thread (en admettant que le ping soit vraiment gourmand en ressource mais j'en doute). Je dois donc t'avouer que je suis un peu surpris de ce genre de pb.
    ________________________________________
    Evitez les pavés de codes! C'est dur et chiant à lire!
    Pensez aux clostro!

Discussions similaires

  1. Java 5.0 Swing et les fenêtres modales
    Par ZaSzRH dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/09/2007, 00h10
  2. <SWING> Changement de fenêtres dans une application
    Par raspac dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/06/2007, 10h41
  3. perte de dessin lors du rafraichissement de fenètre
    Par tawsi dans le forum Graphisme
    Réponses: 1
    Dernier message: 04/06/2006, 07h38
  4. [ SWING ] Ouvrir une fenêtre dans son parent
    Par Invité dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 12/01/2006, 16h12
  5. [ SWING ] Fermer une fenêtre
    Par Invité dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/01/2006, 16h03

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