Адаптивное масштабирование прокрутки по позиции мыши - PullRequest
0 голосов
/ 26 октября 2018

Мне нужно увеличить / уменьшить масштаб в ScrollPane относительно положения мыши.для этого я использовал ответ на этот вопрос , пока все в порядке.Мне нужна еще одна вещь, когда я полностью открываю окно Vbox и заполняю всю страницу.для этого измените эту небольшую часть кода: 1. установите максимальный размер группы в Double.Max_value:

public panelable(Node target) {
    super();
    this.target = target;
    this.zoomNode = new Group(target);
    zoomNode.maxHeight( Double.MAX_VALUE) ;
    zoomNode.maxWidth( Double.MAX_VALUE) ;
    setContent(outerNode(zoomNode));
    setPannable(true);
    setFitToHeight(true); //center
    setFitToWidth(true); //center
    updateScale();
}

2.declare vgrow для VBox:

  private Node centeredNode(Node node) {
    VBox vBox = new VBox(node);
    VBox.setVgrow( node , Priority.ALWAYS);
    vBox.setAlignment(Pos.CENTER);
    return vBox;
}

но Group isn 'изменяемого размера, и этот код не работает. Более того, как документация Oracle ScrollPane , говорящая в моем случае, нужно обернуть узел прокрутки в группе.так что я могу сделать?есть ли решение?Помоги мне, пожалуйста.это мой основной код класса:

public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
    StackPane stackPane = new StackPane() ;
    stackPane.setPrefSize( 600, 600);
    stackPane.setMaxSize( Double.MAX_VALUE ,  Double.MAX_VALUE);
    stackPane.setStyle( "-fx-background-color: red");
    primaryStage.setScene(new Scene( new panelable( stackPane)));
    primaryStage.show();
}
public static void main(String[] args) {
    launch(args);
}}
...