JavaFX-2: comment obtenir la taille de la fenêtre si elle n'était pas réglée manuellement?
Je veux ouvrir une fenêtre de dialogue ci-dessus au centre de la fenêtre mère, j'ai donc utiliser la formule suivante:
Window window = ((Node) actionEvent.getSource()).getScene().getWindow();
Scene scene = new Scene(new Group(new DialogWindow()));
Stage dialog = new Stage();
dialog.initOwner(window);
dialog.sizeToScene();
dialog.setX(stage.getX() + stage.getWidth() / 2 - dialog.getWidth() / 2); //dialog.getWidth() = NaN
dialog.setY(stage.getY() + stage.getHeight() / 2 - dialog.getHeight() / 2); //dialog.getHeight() = NaN
dialog.setScene(scene);
dialog.show(); //it is better to showAndWait();
Je n'ai pas de définir la taille de la main parce que j'ai besoin de la fenêtre à la taille automatiquement à la taille de son contenu.
Sous Linux il définit la fenêtre de droite dans le centre de la fenêtre parent. Mais sous Windows, il ne fonctionne pas et conduit à des résultats différents.
Comment puis-je obtenir la boîte de dialogue de la largeur et de la hauteur si je n'ai pas les définir manuellement?
OriginalL'auteur Dragon | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
La largeur et la hauteur de
Stage
sont calculés après il a été montré (.show()
). Faire le calcul après:EDIT:
Si
showAndWait()
est utilisé à la place deshow()
, puis depuisshowAndWait()
bloque l'appelant cas les calculs après lashowAndWait()
sont également bloqués. La seule voie de solution pourrait être de faire le calcul avant dans de nouveauxRunnable
:Remarque également sur
initModality
. Les modalités doivent être définies en cas deshowAndWait()
. Sinon, à l'aide deshowAndWait()
n'a pas de sens.show()
. PourshowAndWait()
il y a un problème, si la fenêtre principale a été déplacée. Si je la déplace de côté, une boîte de dialogue apparaîtra toujours dans le centre de l'écran. En tout cas merci pour cette solution et je vais continuer à chercher une solution pourshowAndWait()
🙂veuillez voir le jour.
Merci beaucoup. Il fonctionne vraiment génial.
OriginalL'auteur Uluk Biy
Essayez ceci:
OriginalL'auteur Jay Thakkar