2017-03-05 6 views
0
button.setOnAction(e->{ 
    Platform.runLater(() -> { 
    new Main().start(new Stage());   
    stage.close(); 
    }); 
}); 

Je veux appuyer sur le bouton puis fermer la présente scène et montrer une nouvelle étape, mais l'écran va clignoter sur mac. Dois-je changer d'écran au lieu de fermer la scène? Je veux demander de l'aide, merci!comment résoudre javafx écran clignotant sur mac

+0

Sort de hors-sujet, mais 1. il est inutile d'encapsuler le code dans un gestionnaire d'événements dans Platform.runLater (...) 'car le gestionnaire d'événements est déjà appelé sur le thread d'application FX. 2. Vous ne devriez pas appeler 'start (..)' vous-même (vous ne démarrez pas l'application). Refactorisez-le pour pouvoir charger le contenu de la scène où vous le souhaitez, puis remplir la scène actuelle avec le nouveau contenu ou remplir une nouvelle scène avec le nouveau contenu, selon vos besoins. –

Répondre

0

Il n'est pas très utile de poser des questions comme celle-ci lorsque vous nous demandez juste de guérir un symptôme d'un code que vous avez essayé sans nous dire ce que vous voulez réellement accomplir. Si votre intention est de montrer à l'utilisateur du nouveau contenu quand il clique sur un bouton donné, ce n'est certainement pas une bonne idée de fermer la scène. Aucun logiciel ne ferait normalement cela à cette fin. Au lieu de créer et de définir une nouvelle scène (pas d'écran) pour votre scène actuelle ou simplement échanger le nœud racine de la scène en cours.

+0

c'est la première fois que je pose des questions et je vous remercie pour votre réponse. Je pense que je vais améliorer ma façon de poser des questions la prochaine fois =^_^= – YuLiu