Avoir une ihm modal mais qui ne bloque pas le programme

[Résolu]
Signaler
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005
-
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005
-
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.

Merci

9 réponses

Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005

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.

et Merci pour ton aide GodConan

a++
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
et bien c est une progress bar que tu veux non ?!!

GodConan
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005

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)
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
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
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005

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
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005

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.

dur, dur la java
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
et bien c par ce que c est cette instruction bloquante qu il faut metre ds un autre thread...

autrement je voi as trop ce qui peut y avoir d autre ;-( désolé

GL ++

GodConan
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
ben en fait javai du mal m exprimer .... ;o) c est exactement ce que je t ai proposé.. ;o)

GodConan
Messages postés
11
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
1 juin 2005

oups désolé