2017-07-26 3 views
0

Comment le Stage être accessible sous forme dans le contrôleur qui est affecté à la View?accéder à la scène à partir du contrôleur

Actuellement j'utilise un setter depuis l'extérieur du contrôleur pour définir la scène mais j'aimerais savoir s'il existe un moyen de ne pas avoir besoin de s'appuyer sur des méthodes explicitement appelées depuis l'extérieur du contrôleur.

Répondre

0

Si vous avez des références dans votre contrôleur nœud, vous pouvez:

Stage theStage = (Stage) nodeReference.getScene().getWindow(); 

Soyez prudent en utilisant ce. Stage est une sous-classe de Window, donc Stage est une fenêtre, mais une fenêtre peut ne pas toujours être une scène.

+0

À quel moment du cycle de vie cela peut-il être appelé? Je suppose qu'il n'est pas disponible pendant '@FXML initialize() {..}' ... – Hannes

+0

Non, vous devez déjà être attaché au graphe de scène. Si vous avez besoin d'accéder à la scène plus tôt, je l'injecterais sur la création de votre contrôleur. – Eric

+0

C'est ce que je pensais et c'est ce que je fais en ce moment, mais je me demandais s'il y avait une meilleure façon de le faire. – Hannes