2013-03-16 153 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