我的界面中有一个窗格。在那个窗格上,我添加了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但没有任何区别。有什么建议吗?
答案 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) ;