【问题标题】:How to only show a section of a JComponent/SwingNode/Java FX Pane如何仅显示 JComponent/SwingNode/Java FX 窗格的一部分
【发布时间】:2017-10-18 12:16:46
【问题描述】:

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

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

有人知道怎么做吗? TIA

【问题讨论】:

    标签: java javafx components jcomponent pane


    【解决方案1】:

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

    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); 
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 2017-12-28
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多