很简单的问题,但是我无法找到JavaFX的文档或StackOverflow的答案:JavaFX的:如何清除图纸不影响背景
我有一个JavaFX帆布充满图形(各种调用strokeLine() ,这里不是问题)。我需要能够在该图上绘制矩形,然后只需清除矩形,而不会影响背景中的图形。 (像撤消操作一样)。
代码绘制矩形(“p”和“E”是点):
gc.rect(p.getX(), p.getY(), e.getX()-p.getX(), e.getY()-p.getY());
gc.stroke();
最明显的答案是使用和clearRect()方法,但问题是,它同时会清除在背景图中的部分...
所以问题是:如何清除使用stroke()制作的绘图,而不影响背景中的其他绘图?
如果您需要操作形状,您应该考虑将它们添加到窗格,AnchorPane或组中,随时移动它们,调整大小或删除它们。您可以使用Canvas,但在这种情况下,您需要将每个形状的所有信息(例如ArrayList)保留下来,并在每次应用更改(删除/移动等)时重绘所有内容,但取决于形状的数量这个过程可能非常耗费CPU /内存。 – JKostikiadis