nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005
-
30 mai 2005 à 16:25
nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005
-
3 juin 2005 à 09:00
Bonjour à tous,
Voici mon problème:
Je voudrai avoir une IHM qui est bloquée par le biais d'une JDialog, donc modal (pour l'instant pas de problème). Mais, cette fenetre ne doit pas bloquer le déroulement du programme (?!) . De plus, je ne peut passer par des Threads ...
En fait, je veux faire 1 requete à une base de données qui peut etre assez longue (2-3 secondes) et ne pas permettre à l'utilisateur de manipuler l'interface graphique.
Je suis à l'écoute de vos commentaires et de suggestions.
nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005 2 juin 2005 à 10:08
J'ai enfin trouvée le truc:
Je vai essayer de l'expliquer, mais c pas facile.
Alors java qd il gére un événement, il ne peut en géré d'autres, il met alors les événements en attente. Donc je ne pouvais voir ma fenetre, parce qu'il était impossible de la rédessiner avant la fin du traitement du 1er événement.
Rappel: ma fenetre d'attente devai s'ouvrir qd j'appuyé sur un boutton, et à la fin du traitement se fermer.
La soilution est de tout mettre dans des Thread et surtout d'afficher la fenetre d'attente (par un setVisible par ex) par le biais d'un autre Thread.
nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005 31 mai 2005 à 09:03
pas vraiment, j'veut juste une JDialog avec une texte tout simple: "conexion en cours..."
Je lance cette JDialog avant de faire la connexion, puis je bloque l'ihm jusqu'au moment ou j reçois les données de ma connexion.
J'ai eu une nouvelle idée qui consiste à faire la connexion en passant par les événements de ma JDialog. Par exemple, lorsque j'ouvre ma Jdialog, je fait la connexion (événement windowOpened). Or le problème c'est que seul le titre de ma JDialog apparait et non le contenu (des JLabel)
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 31 mai 2005 à 19:09
je voi pas comment tu peu faire si tu ne veu pas lancer un second thread....
le thread de l IHM est forcement bloker si tu t en ser pour une action d attente ...
dc tu lance bien ta demande de connection qd tu affiche ta boite mais il te fau la lancer dans un thread pour que ta boite puisse encor reagir ... faire une annulation par exemple ... ou rafraichir ses composents ;o)
++
GodConan
Vous n’avez pas trouvé la réponse que vous recherchez ?
nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005 1 juin 2005 à 09:32
J'ai suivi ton conseil et je passe par un thread.
Ca fait bien ce qu j demande, sauf que ma fenetre d'attente (une Jdialog) ne s'affiche pas correctement. Seul le titre de la fenetre, et le contour de la fenetre apparaissent. Les composants de l'intérieur de ma JDialog n'apparaissent pas, ...
Est ce dû au fait que la fenetre soit modal (qui se bloque elle même?! ou d'ou pourrai provenir l'erreur?)
Merci
nels2711
Messages postés11Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 1 juin 2005 1 juin 2005 à 11:15
Bonjour, j'ai trouvé le problème sans réussir à le résoudre (du moins j pense avoir trouvé)
En fait, c'est l'IHM dont le programme est bloquant qui ne se met pas à jour.
En fait dans le thread, les changements sont bien effectués, mais l'ihm n'est pas actualisée.
Comment pouvoir forcer la mis à jour ?????
PS: j'ai tester repaint, mai ca ne fonctio
nne pas
les changements fait dans le thread sont bien pris en compte, puisque, toutes les infos s'affichent à la fin de l'instruction bloquante.