I have been using wrong method as well as fxml option. The way to do it was with setPrefSize method, and then set the max size at USE_PREF in fxml file.
JavaFX 2 Pane Dynamic Resizing
题
I have a Pane within my interface. On that Pane I add Shape objects and drag them around. I what to make my Pane bigger when one Shape reaches the visual bounds of the Pane. As a prototype, I try to make it bigger whenever I click my mouse. The Pane is child (within) a ScrollPane. Here is my code:
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());
}
});
When I click twice I get the following result:
602.0 574.0
702.0 674.0
602.0 574.0
702.0 674.0
So the Pane basically resizes briefly and then returns to its original size.On the FXML, the max height and width are set to USE_PREF_SIZE as well as MAX_VALUE. I also tried to increase maxWidth/height before calling resize but made no difference. Any advice?
解决方案
其他提示
Your code is wrong. Instead of using
paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100);
use
paneArea.setPrefWidth(paneArea.getWidth() + 100) ;
paneArea.setPrefHeight(paneArea.getHeight)() + 100) ;
不隶属于 StackOverflow