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

JavaFX Discussion :

Le corps bloc la vue (Thread, automate)


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Par défaut Le corps bloc la vue (Thread, automate)
    Bonjour à tous,


    Je fais face à un problème dans le développement d'un projet.


    Mise en contexte :
    je travaille sur un projet universitaire, nous sommes en équipe. Le projet consiste en la réalisation d'un jeu de cartes (Black-Jack plus précisément), certaines classes doivent être conçus de sorte à pouvoir être réutiliser dans d'autres jeux de cartes. L'application est réalisé avec le patron MVC.


    Nous avons défini deux types de joueurs (qui spécialise la même classe abstraite) :


    • humain
    • robot


    Chacune de ses deux classes définit une méthode play permettant comme son nom l'indique de jouer (son tour).


    Le jeu en lui-même (jouer une partie), est géré par l'intermédiaire d'un automate (utilisant le patron état).


    Un joueur ayant la possibilité de faire plusieurs actions, nous avons utilisé le patron stratégies (utiliser dans play par le robot. Pour les humains, ce seront des appels dans l'IHM avec des boutons).


    Le problème :
    le problème se situe dans l'affichage de l'IHM, toute la partie graphique et réalisée avec JavaFx. Nous avons une fenêtre affichant le menu principal, lorsque l'utilisateur clique sur le bouton « jouer », une boîte de dialogue s'ouvre permettant à l'utilisateur de paramétrer la partie (nombre de joueurs, nombre de jeux de cartes). Hors lorsqu'il clique sur le bouton pour valider, les jeux se jouent entièrement et l'affichage du jeu (qui est fait à la place du menu principal) s'affiche à la toute fin (lorsque le jeu est terminé).


    Nous avons donc pensé à utiliser un système de thread. mais là encore il y a un problème…
    Lorsque le jeu s'initialise, il est dans l'incapacité du maître à jour la vue. Le corps (qui est exécuté dans un thread) s'exécute mais affiche des erreurs dans le terminal, du fait que nous avons des propriétés Observables qui ne peuvent pas être mises à jour dans le thread.


    Ma question est donc comment puis-je mettre à jour la vue (et les propriétés observable) sans que le corps ne bloque cette dernière ?


    Je ne mets pas le code, car ce serait indigeste de mettre plus de 1000 lignes de code réparties en plusieurs classes de packages et modules différents.
    Je peux éventuellement mettre quelque partie sur demande.


    Cordialement,


    Yoratheon

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Platform.runLater(() -> {
        // Forwarder tout ce qui a change dans le thread du jeu vers le JavaFX Application Thread pour mettre a jour l'UI.
        [...]
    });
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Par défaut
    Merci,

    J'avais trouvé cette solution hier à laquelle j'ai également changé quelques instructions dans l'automate. Ça fonctionne bien.

    Je te remercie de ta réponse

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 14/12/2006, 08h34
  2. [Thread] Priorités face à un bloc synchronisé
    Par Satch dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 19/01/2006, 10h31
  3. [PDE]Rediriger la sortie d'un thread vers une vue Eclipse
    Par Niko31 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/01/2006, 17h31
  4. PB : Automation d'Outlook à partir d'un Thread.
    Par loupdeau dans le forum MFC
    Réponses: 3
    Dernier message: 11/05/2005, 17h29
  5. [Astuce][Thread]Utilisation des blocs synchronized
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 14
    Dernier message: 21/07/2004, 14h14

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