gpt4 book ai didi

java - 如何用canvas预览当前绘制的对象?

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:00 24 4
gpt4 key购买 nike

我是 javafx 新手,目前正在尝试制作我的第一个绘图程序。到目前为止一切顺利,但我遇到了问题。

我希望用户在绘制矩形时看到矩形的大小。

在“setOnMouseDragged”方法中,我尝试绘制矩形的当前大小,然后清除它,以便可以进行预览。不幸的是,这阻止我在没有清除它的情况下绘制另一个矩形。

如何进行预览但仍绘制多个对象?

rootCenter.setOnMousePressed(new EventHandler<MouseEvent>() {

@Override
public void handle(MouseEvent event) {

oldPosX = event.getSceneX();
oldPosY = event.getSceneY();


}
});

rootCenter.setOnMouseDragged(new EventHandler<MouseEvent>() {

@Override
public void handle(MouseEvent event) {

newPosX = event.getSceneX();
newPosY = event.getSceneY();

gContext.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
gContext.strokeRect(oldPosX, oldPosY, newPosX - oldPosX , newPosY -oldPosY);
}
});

rootCenter.setOnMouseReleased(new EventHandler<MouseEvent>() {

@Override
public void handle(MouseEvent event) {
gContext.strokeRect(oldPosX, oldPosY, newPosX - oldPosX , newPosY -oldPosY);

}
});

}

最佳答案

Canvas 并不是您想要做的事情的正确工具。为什么不使用场景图呢?使用场景图,您甚至不需要任何预览。你可以直接进行现场操作。请查看此处的文档:https://docs.oracle.com/javafx/2/scenegraph/jfxpub-scenegraph.htm

关于java - 如何用canvas预览当前绘制的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57341678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com