[JAVA] Figer exécution en attente de requête

Résolu
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -  
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à toutes et tous,

En Java je travaille sur une application graphique (swing) qui fait essentiellement des accès en base de données (lectures mais surtout insertions et mises à jour).

Les accès à cette DB sont généralement rapides mais parfois (si le serveur est distant ou occupé) beaucoup moins, de sorte que l'application continue à accepter des opérations de drag & drop (pour ne citer que ça). Avec donc le risque que l'utilisateur fasse des opérations illégales ou refasse plusieurs fois la même opération parce qu'il croit que la première tentative à échoué.

Il parraît que c'est un comportement normal puisque les événements sont toujours gérés en multi threads. Pourtant j'aimerais pouvoir interdir toute opération (exemple : l'activation d'un sablier indiquant une attente du système) tant que le serveur de bases de données n'a pas répondu.

(En VB je me souviens vaguement qu'on peut faire une chose similaire en testant l' "état" du SGBD dans une boucle, boucle qui "fige" l'exécution puisqu'elle monopolise tout jusqu'à ce que le serveur n'a pas fourni l'état "requête traitée").

Avez-vous une suggestion pour mon cas ? Déjà merci. ;-)
A voir également:

1 réponse

Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   225
 
Re,

Je crois en fait que je me suis trompé de problème même s'il est plus ou moins correctement exposé. Ca peut se résoudre en appelant une fenêtre modale avant de lancer la longue opération et de faire disparaitre cette fenêtre (donc "rendre la main") après... ça a l'air de résoudre le problème et avec l'utilisation de la classe SwingWorker on peut aller plus loin dans la convivialité.
1