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 :

Gestion de comportement de fin de programme (pop-up, trigger, autres?)


Sujet :

JavaFX

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Gestion de comportement de fin de programme (pop-up, trigger, autres?)
    Bonjour,

    Tout d'abord, je m'excuse de ne pas pouvoir offrir plus de précisions dans le titre de ce post car je suis débutant et pas très familier dans les termes adaptés. Je n'ai, de ce fait, pas pu utiliser efficacement les tutoriels potentiellement mis à disposition et notre professeur n'est pas du genre investis ou intéressé d'une quelconque manière à la besogne qu'il nous a lui même attribué, ce qui est particulièrement pénalisant et décevant.

    Dans le vif du sujet, voici la raison pour laquelle je m'adresse à vous :

    Nous avons eu comme consigne de créer un jeu suivant les règles d'un autre jeu(question pour un champion). Nous avons bien progressé mais maintenant que l'on doit gérer la fin de partie, j'avoue que le manque de connaissance javafx(lié à l'arrêt des cours)me pose des problèmes car je n'ai aucune idée de ce qui serait le mieux et potentiellement le plus simple pour gérer cela. Le trigger de fin de partie étant le score max atteint ou le timer arrivé à 0. Le tout est actuellement géré dans une seule fenêtre.

    Serait-il envisageable de faire apparaître une nouvelle fenêtre affichant l'état de fin de partie avec un texte adapté et un bouton pour revenir au menu de lancement ?(ou carrément de restart le jeu?) Avec si possible une option qui empêche l'utilisateur de faire autre chose que d'intéragir avec le dit bouton s'il veut continuer.

    Est-ce mieux de jouer avec les affichages pour ne faire apparaître que les choses à afficher suivant la situation ?
    (J'ai cru comprendre que c'était pas propre comme manière de faire)

    Je suis désolé d'être dans le flou à ce point mais l' interdiction d'utiliser les outils d'aides m'empêche de bien comprendre certaines choses alors que je suis sûr que cela va paraître dérisoire pour vous.

    Je suis preneur de tous conseils et suis même disponible pour un entretien discord si quelqu'un se sent l'envie et le courage de m'attribuer un peu de son temps.



    En vous remerciant,

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Ca s'appelle un Dialog avec une modalité qui empêche toute interaction avec la fenêtre mère. Voir la (et plus spécifiquement "Comment créer une boite de dialogue customisée ?").

    Alternativement tu peux remplacer ta scène (ou son contenu), par une autre scène (ou un autre contenu) qui affiche l’écran des score ou tout autre chose que tu jugeras bon d'afficher.
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup !

    Il s'agit en effet de ce que je cherche, je ne savais néanmoins pas que l'on pouvait modifier son contenu. Cela veut-il dire que le dialog est (vulgairement) à considérer comme un type de layout et que je peux vraiment y mettre ce que je souhaite?

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Même si de base, tout est prévu pour faire des saisies simples, tu peux en fait mettre ce que tu veux dedans comme si c'était une nouvelle scène.
    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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    D'accord, je vous remercie pour l'information. Je vais faire quelques test afin de voir si j'arrive au résultat attendu .
    Et je reviendrai pour vous en informer ou si j'ai une question supplémentaire.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai tenté de suivre le cours et même de tenter autre chose au cas où mais il semblerait que je ne puisse même pas créer de Dialog() .

    Voici l'erreur que cause l'exécution de la boite de dialogue personnalisée proposée à titre d'information dans le cours link :

    Exception in thread "main" java.lang.ExceptionInInitializerError
    at javafx.scene.control.DialogPane.createContentLabel(DialogPane.java:167)
    at javafx.scene.control.DialogPane.<init>(DialogPane.java:218)
    at javafx.scene.control.Dialog.<init>(Dialog.java:506)
    at application.dia.main(dia.java:21)
    Caused by: java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:273)
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:268)
    at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:550)
    at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:512)
    at javafx.scene.control.Control.<clinit>(Control.java:87)
    ... 4 more

    la ligne dia.java:21 correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final Dialog<Pair<String, String>> dialog = new Dialog();
    que j'ai tenté de corriger en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final Dialog<Pair<String, String>> dialog = new Dialog<Pair<String, String>>();
    car la prémière erreur était lié à ça.


    et au cas où, voici les imports :

    import java.util.Optional;

    import javafx.application.Platform;
    import javafx.geometry.Insets;
    import javafx.scene.control.ButtonBar.ButtonData;
    import javafx.scene.control.ButtonType;
    import javafx.scene.control.Dialog;
    import javafx.scene.control.Label;
    import javafx.scene.control.PasswordField;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.GridPane;
    import javafx.util.Callback;
    import javafx.util.Pair;


    en vous remerciant


    (et en m'excusant aussi de ne pas être à l'aise avec ça)

    edit : est-il possible de désafficher le contour d'une fenetre en javafx ? (plus précisément dans le but de ne pas avoir accès aux boutons de redimenssion et de fermeture de la fenetre )

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalStateException: Toolkit not initialized
    JavaFX n'a pas encore démarré au moment où ce code est invoqué.
    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

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    En effet, il s'agissait d'une erreur assez bête de ma part.

    J'arrive à faire à peu près ce que je souhaitais faire et je vous en remercie. Juste un dernier petit détail avant de clore ce sujet par sa résolution.

    comment puis-je, si possible, faire appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getScene.setRoot(. . . )
    dans une methode static ?


    ou plus précisément, comment puis-je changer de scene à partir d'une méthode static ^^

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Tu ne peux pas, il faut soit passer cette valeur en parametre de la méthode, soit conserver une référence statique à cette valeur ou a un moyen de la retrouver (ex : si ton application a une unique fenetre alors tu peux tenter de conserver une reference statique à cette fenêtre même si c'est pas glop)
    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

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    L application que nous avons faite est, en effet, dans une fenêtre unique et je vois ce que vous voulez dire, mais malgré mes essais, je suis dans une impasse double.
    D'un côté , soit j arrive à afficher mon Dialog mais je n ai aucun moyen de revenir sur la scène de mon menu principal, et de l autre, j arrive à le faire mais le cycle de l animation(timer) dans laquelle j'invoque le Dialog continue de créer des Dialog parce que je n arrive pas à sortir du cycle. Je n'aurais peut-être pas dû passer par ce genre de conception pour mon timer car je pense être arrivé au bout de ce que je peux faire :s.

    Dans tous les cas, je vous remercie pour votre aide précieuse.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/01/2007, 13h09
  2. memoire fin de programme
    Par semaj_james dans le forum C
    Réponses: 6
    Dernier message: 28/11/2005, 11h39
  3. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  4. gestion de date de fin de mois
    Par bzh56 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/01/2005, 10h15
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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