0
votes

JavaFX: méthode et retour de ne semble pas fonctionner de manière appropriée

'Matin. J'ai juste un petit problème avec Java FX. Le problème est le problème: je veux écrire un code et laisser une fenêtre contextuelle à venir lorsque l'utilisation fermera l'application via le bouton de fermeture par défaut. xxx

Chaque fois que j'appuie sur le bouton Applauté Kill App, Un message contextuel suivra et demandez-moi si je veux fermer l'application xxx

Le problème est, lorsque je cours pour la première fois la méthode, la variable booléenne "Réponse "N'a pas été à proximité du résultat, de sorte que la fermeture (), ne peut pas inclure à l'intérieur du cas. Comment prévenir cela? Est-ce que j'ai manqué une funcionalité de Javafx? Je suis nouveau sur JavaFx et Java même.


0 commentaires

3 Réponses :


4
votes

Essayez quelque chose comme ça. XXX


0 commentaires

0
votes

Je suis nouveau à Java moi-même, alors je comprends parfaitement où vous êtes maintenant.

Ce que je devine, c'est que votre méthode principale continue à courir après que la boîte de dialogue de confirmation apparaisse, la réponse est donc toujours fausse que la première fois. Peut-être que vous devez garder votre méthode principale en attente pendant que l'utilisateur envisage toujours de fermer ou non le programme.

Si votre classe de confirmation étend la classe DialogPane, vous pouvez utiliser la méthode window.showandwait () au lieu de fenêtre.show () intérieur . Je pense que cela devrait fonctionner.

J'espère que cela aide!

Edit: En réalité, je viens de réaliser que cette solution est indépendante de savoir si la confirmationbox étend la boîte de dialogpane, car fenêtre est un objet de scène et comprend déjà la méthode VOIRANDWAIT () .


0 commentaires

2
votes

La fenêtre .Show () montre la fenêtre et retourne immédiatement . Par conséquent, votre code xxx

affiche la fenêtre et renvoie immédiatement la valeur actuelle de drapeau (qui est initialement false ).

Si l'utilisateur appuie sur le ybutton , le drapeau est puis défini sur vrai et la prochaine fois qu'ils tentent de fermer la principale Fenêtre, la méthode renvoie immédiatement true et la fenêtre principale se ferme.

Vous pouvez plutôt utiliser la méthode fenêtre.showandwait () qui" montre cette étape et attend que ce soit caché (fermé) avant de retourner à l'appelant. ": xxx

Comme d'autres réponses ont signalé, il y a aussi un boîte de dialogue API , y compris une commodité alerte classe . La principale fonctionnalité que dialogue prévoit qu'une étape Stage n'est pas la possibilité de renvoyer une valeur de la méthode showandwait () . Dans votre cas, vous souhaitez renvoyer un boolean , donc la version -Based de votre méthode ressemblerait à: xxx


0 commentaires