User interface JavaFX:在相同维度的滚动窗格中浏览画布

User interface JavaFX:在相同维度的滚动窗格中浏览画布,user-interface,canvas,javafx,scrollpane,User Interface,Canvas,Javafx,Scrollpane,我创建了一个10000 x 10000像素的画布,把它放在一个300 x 300的滚动窗格中。这项措施实施得很好。整个网格都画出来了,我可以在其中滚动 我的任务是创建相同的功能,除了使用300 x 300画布。由于速度在这个项目中很重要,我被告知这会更快 我的问题是,当我这样做时,我无法访问滚动窗格底部和右侧的滚动条。我如何重新获得对这些滚动条的访问权,以进行物理滚动 画布正在以每秒60步的速度更新。正在绘制的是一个二维数组中信息的正方形网格 由于视口处理将由绘图逻辑完成,因此使用GridPan

我创建了一个10000 x 10000像素的画布,把它放在一个300 x 300的滚动窗格中。这项措施实施得很好。整个网格都画出来了,我可以在其中滚动

我的任务是创建相同的功能,除了使用300 x 300画布。由于速度在这个项目中很重要,我被告知这会更快

我的问题是,当我这样做时,我无法访问滚动窗格底部和右侧的滚动条。我如何重新获得对这些滚动条的访问权,以进行物理滚动


画布正在以每秒60步的速度更新。正在绘制的是一个二维数组中信息的正方形网格

由于视口处理将由绘图逻辑完成,因此使用
GridPane
创建“滚动窗格”相当容易:

public static ScrollBar createScrollBar(Orientation orientation, double fullSize, double canvasSize) {
    ScrollBar sb = new ScrollBar();
    sb.setOrientation(orientation);
    sb.setMax(fullSize - canvasSize);
    sb.setVisibleAmount(canvasSize);
    return sb;
}

由于视口处理将由绘图逻辑完成,因此使用
GridPane
自己创建“滚动窗格”相当容易:

public static ScrollBar createScrollBar(Orientation orientation, double fullSize, double canvasSize) {
    ScrollBar sb = new ScrollBar();
    sb.setOrientation(orientation);
    sb.setMax(fullSize - canvasSize);
    sb.setVisibleAmount(canvasSize);
    return sb;
}