我想在Pane上绘制并实现缩放功能,但是当我放大时,程序会从窗格中拉出来。
我很想知道,因为我将窗格设置为MaxHeight
和MaxWidth
,以了解我的问题我制作了该程序的图片。
我已经在网上搜索过了,但是没有找到关于javafx的任何关于这个问题的信息。
我用
缩放 this.pane.setScaleX(2);
this.pane.setScaleY(2);
我对javafx没有多少经验,也不知道是否有限制窗格宽度和高度范围的功能?
答案 0 :(得分:0)
Pane的Oracle文档说:
“Pane默认情况下不会剪切其内容,因此如果子项位于负坐标处或者窗格的大小小于其首选大小,则子区域的边界可能会超出其自身范围。”
您可以尝试这样的事情:
package jfxlib.scene.layout;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
public class ClipPane extends Pane {
public ClipPane() {
Rectangle clipRect = new Rectangle();
setClip(clipRect);
layoutBoundsProperty().addListener((observable, oldValue, newValue) -> {
clipRect.setWidth(newValue.getWidth());
clipRect.setHeight(newValue.getHeight());
});
}
}