JavaFX 2窗格动态调整大小

时间:2013-03-16 19:50:45

标签: java javafx-2 pane

我的界面中有一个窗格。在那个窗格上,我添加了Shape对象并将它们拖动。 当一个Shape达到Pane的视觉界限时,我该怎么做我的Pane更大。作为原型, 每当我点击鼠标时,我都试着让它变得更大。窗格是ScrollPane中的子(内)。这是我的代码:

    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

因此,Pane基本上会短暂调整大小然后返回其原始大小。在FXML中,最大高度和宽度设置为USE_PREF_SIZE以及MAX_VALUE。我也尝试在调用resize之前增加maxWidth / height但没有任何区别。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我一直在使用错误的方法以及fxml选项。这样做的方法是使用setPrefSize方法,然后在fxml文件中将最大大小设置为USE_PREF。

答案 1 :(得分:0)

你的代码错了。而不是使用

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

使用

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