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

标签 java javafx components jcomponent pane

我正在构建一个 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/

相关文章:

java - java中的锯齿状数组排序

JavaFX,将 ArrayList 转换为 ObservableList

java - 反编译Java项目并编译

java - 组件在添加时删除图像

java - 将 Java VisualVM 连接到本地应用程序

Java 空检查

java - 没有如果在 spring mvc 中命中计数

javafx - 微调控制值

javascript - 设置状态不工作

Java Swing - 缩放 UI 以适应窗口分辨率