作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 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/
我是一名优秀的程序员,十分优秀!