2

我的界面中有一个窗格。在那个窗格上,我添加了 Shape 对象并拖动它们。当一个形状到达窗格的视觉边界时,我如何使我的窗格更大。作为原型,每当我点击鼠标时,我都会尝试将其放大。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

所以窗格基本上会简单地调整大小,然后恢复到原来的大小。在 FXML 上,最大高度和宽度设置为 USE_PREF_SIZE 和 MAX_VALUE。我还尝试在调用调整大小之前增加 maxWidth/height,但没有任何区别。有什么建议吗?

4

2 回答 2

2

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

于 2013-03-17T17:09:27.337 回答
0

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

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

采用

paneArea.setPrefWidth(paneArea.getWidth() + 100) ; 
paneArea.setPrefHeight(paneArea.getHeight)() + 100) ;
于 2014-03-24T06:46:17.973 回答