当前位置: 首页 > 知识库问答 >
问题:

JavaFX和ScrollPanes中的缩放

沈飞翔
2023-03-14

我一直在尝试使用JavaFX中的缩放转换,但还没有完全理解它。基本上,我有一个窗格包含一个复杂的图形,并希望能够撤销它。缩放部分本身工作得很好,但是,封闭的滚动窗格将不适应图形。

为了简单起见,我将发布一个简短的示例,其中我的图被一个标签替换:

public class TestApp extends Application {
    @Override public void start(final Stage stage) throws Exception {
        final Label label = new Label("Hello World");
        label.getTransforms().setAll(new Scale(0.5, 0.5));

        label.setStyle("-fx-background-color:blue");
        label.setFont(new Font(200));

        final ScrollPane scrollPane = new ScrollPane();
        scrollPane.setContent(label);

        stage.setScene(new Scene(scrollPane));
        stage.setWidth(200);
        stage.setHeight(100);
        stage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
} 
    null

我错过了什么?如何使滚动窗格适应内容视图?

谢谢你的帮助。

共有1个答案

汪同
2023-03-14

根据ScrollPane文档,您可以尝试将一个窗格包装成一个组,这样ScrollPane是通过视觉绑定而不是实际的布局绑定滚动的。

ScrollPane layout calculations are based on the layoutBounds rather than the
boundsInParent (visual bounds) of the scroll node. If an application wants the
scrolling to be based on the visual bounds of the node (for scaled content etc.),
they need to wrap the scroll node in a Group. 
 类似资料:
  • 实际上,我正在用JavaFX编写游戏《暗黑破坏神》的“简单”版本。 目前,屏幕尺寸为绝对800x600,一切正常。现在我们的团队希望在每个桌面上使用全屏。 我的问题是:我们正在使用绝对尺寸为25x25的墙、地板等图像。如果我们想在全屏模式下工作,我们需要扩展它们。 但据我所知,您只能缩放ImageView或BufferedImage。当然,我们正在重复使用图像。例如,一个墙壁纹理在窗格上出现了20

  • 为了实现类似于minimap的功能,我使用在之上添加了一个。我将的缩放x和y属性绑定到以实现缩放效果。我在中添加了一些对象。这些圆圈当然也应该是可缩放的(它们确实是),但在这种情况下,更重要的是,当缩放发生时,它们应该保持在它们的相对位置。下面的图片显示了GUI到目前为止的样子。 到目前为止,我已经区分了两个有问题的案例。 在这个更简单的例子中,除了放大图像似乎使其超出的边界之外,一切都很好。因此

  • 我有一个呈现图形的JavaFX Webview(使用D3)。我想在JavaFX应用程序中实现此图上的“鼠标滚动缩放”(当鼠标悬停在webview顶部时)。我能够使用以下d3 js代码在Web浏览器上成功完成它 但是,如果我在JavaFX应用程序的WebView中执行类似操作,图形最初会在WebView中呈现,但会滚动,只会消失,并且只有当我将鼠标滚动恢复到初始位置(应用程序启动时)时才会重新出现

  • 我想在JavaFX中实现一个linechart,它应该是可缩放/可滚动的。 我使用SceneBuilder创建图表,所有数据都正确显示。我的目标是用户能够放大和滚动到侧面(x轴)。

  • 问题我如何可以嵌入这个应用程序到SPlitPane,在左边将是另一个面板。 不幸的是,代码导致了错误的坐标,

  • 问题内容: 由于增强的 多媒体功能,Webviewer和使用视觉效果的可能性,因此我在项目中使用JavaFX而不是Swing 。但是, 从网上 (http://docs.oracle.com/javafx/2/layout/jfxpub-layout.htm等)上 了解到的是JavaFX布局管理器专注于缩放父 基于所述内容的大小,而摇摆上论点集中缩放 根据父内容,至少基于所述Layout被 使用。