2013-03-16 210 views
2

我在我的界面中有一個窗格。在該窗格上,我添加Shape對象並將它們拖動。 當一個Shape達到窗格的視覺範圍時,我該如何讓我的窗格更大。作爲原型, 我試圖讓它更大,每當我點擊我的鼠標。該窗格是ScrollPane中的子項(內部)。這裏是我的代碼:JavaFX 2窗格動態調整大小

paneArea.setOnMouseClicked(new EventHandler<MouseEvent>() { 
     @Override 
     public void handle(MouseEvent mouseEvent) { 
      System.out.println(paneArea.getWidth()+" "+paneArea.getHeight()); 
      paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100);     
      System.out.println(paneArea.getWidth()+" "+paneArea.getHeight()); 
     } 
    }); 

當我點擊兩次我得到以下結果:

602.0 574.0 
702.0 674.0 
602.0 574.0 
702.0 674.0 

所以基本上窗格短暫調整大小,然後返回到原來的size.On的FXML,最大高度寬度設置爲USE_PREF_SIZE以及MAX_VALUE。在調用調整大小之前,我也試圖增加maxWidth/height,但沒有任何區別。有什麼建議?

回答

1

我一直在使用錯誤的方法以及fxml選項。實現它的方法是使用setPrefSize方法,然後將最大大小設置爲fxml文件中的USE_PREF。

+0

我的2分錢小費 的我想你也應該把最小尺寸爲'在FXML文件USE_PREF'。 – zIronManBox 2015-06-26 11:07:27

0

您的代碼是錯誤的。除了使用

paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100); 

使用

paneArea.setPrefWidth(paneArea.getWidth() + 100) ; 
paneArea.setPrefHeight(paneArea.getHeight)() + 100) ; 
+0

謝謝你的回答,雖然這個問題不再相關,所以我不能測試這個。 – Giannis 2014-03-24 10:24:47