画布不会划过特定点

时间:2015-12-12 07:20:28

标签: java javafx

Canvas Java Fx

我想在Pane上绘制并实现缩放功能,但是当我放大时,程序会从窗格中拉出来。

我很想知道,因为我将窗格设置为MaxHeightMaxWidth,以了解我的问题我制作了该程序的图片。 我已经在网上搜索过了,但是没有找到关于javafx的任何关于这个问题的信息。

我用

缩放
     this.pane.setScaleX(2);
    this.pane.setScaleY(2);

我对javafx没有多少经验,也不知道是否有限制窗格宽度和高度范围的功能?

Problem rightside on zoom

1 个答案:

答案 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());
        });
    }
}