我正在构建一个Java FX音乐应用程序,我有一个Java FX窗格,其中包含一个包含JComponent的SwingNode,我希望能够隐藏此组件的顶部和底部,并且只显示中间部分。 / p>
如果我将Pane的大小调整为小于Component,那么它只显示Component的顶部,就像这个Top section of Component一样,但我想要一种向上移动组件的方法,以便中间部分是可见,顶部和底部被裁剪Middle section of Component
任何人都知道这样做的方法吗? TIA
答案 0 :(得分:1)
如果您想简单地剪辑外部区域,请将节点包裹到Pane
,设置为负LayoutXY
和合适的MaxSize
。当外部区域与其他Node
重叠时,可能需要剪裁。例如:
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);