gpt4 book ai didi

java - 如何仅显示 JComponent/SwingNode/Java FX Pane 的一部分

转载 作者:行者123 更新时间:2023-12-02 13:08:24 24 4
gpt4 key购买 nike

我正在构建一个 Java FX 音乐应用程序,我有一个 Java FX Pane ,其中包含一个包含 JComponent 的 SwingNode,我希望能够隐藏该组件的顶部和底部,只显示中间部分。

如果我将 Pane 的大小调整为小于组件,那么它将仅显示组件的顶部部分,如下所示 Top section of Component ,但我想要一种向上移动组件的方法,以便中间部分可见并且顶部和底部被裁剪 Middle section of Component

有人知道如何做到这一点吗? TIA

最佳答案

如果您想简单地裁剪外部区域,请将节点包装到 Pane 中,设置负的 LayoutXY 和合适的 MaxSize。当外部区域与其他节点重叠时,可能需要裁剪。例如:

Pane viewPort = new Pane();
viewPort.getChildren().add(yourSwingNode);

// Top 200px and bottom 200px of yourSwingNode will be trimed.
yourSwingNode.setLayoutY(-200.0);
yourSwingNode.layoutBoundsProperty().addListener((o, ov, nv) -> {
viewPort.setMaxHeight(nv.getHeight() - 400.0);
});

// Set a clip for the layout bounds of Pane if you need
Rectangle clip = new Rectangle();
viewPort.layoutBoundsProperty().addListener((o, ov, nv) -> {
clip.setWidth(nv.getWidth());
clip.setHeight(nv.getHeight());
});
viewPort.setClip(clip);

关于java - 如何仅显示 JComponent/SwingNode/Java FX Pane 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com