2012-12-12 79 views
1

我想將Popup居中放置在舞臺中央,但是我無法正確操作,因爲我需要彈出窗口的大小,並且它的大小爲0(popup.getWidth ()= 0和popup.getHeight()= 0)。彈出式窗口寬度和高度= 0

如何獲得正確的尺寸?

我的代碼是下面:

   Popup popup = new Popup(); 
       popup.setAutoFix(true); 
       popup.setAutoHide(true); 
       popup.setHideOnEscape(true); 
       Label label = new Label("Empty indentation char!"); 
       label.setOpacity(100); 
       label.setStyle("-fx-background-color: cornsilk;"); 
       popup.getContent().add(label); 
       Point2D center = Utils.getCenter(mainClass.getOptionsStage()); 
       popup.show(mainClass.getOptionsStage(), 
         center.getX() - popup.getWidth()/2, 
         center.getY() - popup.getHeight()/2); 
  • Utils.getCenter()返回一個窗口的中心點。
+1

完全相同的副本?如果您確實喜歡鏈接說Popup組件不會居中。告訴我你如何能夠像這樣將Popup居中,我向你挑戰! – ceklock

回答

2

Popup不知道他的界限,直到他被顯示。

嘗試顯示之後,將其移動:

popup.show(mainClass.getOptionsStage()); 
popup.setX(center.getX() - popup.getWidth()/2); 
popup.setY(center.getY() - popup.getHeight()/2); 
+0

謝謝,它的工作原理。我不喜歡在可見部件後設置位置,但我認爲這是目前唯一的方法。 – ceklock