Java 从画布上移除strokeRect

Java 从画布上移除strokeRect,java,javafx,canvas,stroke,remove,Java,Javafx,Canvas,Stroke,Remove,我有一个大学作业,在那里我必须编写一些程序,可以绘制和删除矩形,并将它们叠加在一起。到目前为止,我唯一缺少的部分是移除部分。 这就是我调用的在画布上创建矩形的方法: private void zeichneRechtecke(double x, int y, double breite, String typ) { int hoehe = 15; GraphicsContext g = stapelCanvas.getGraphicsContext2D();

我有一个大学作业,在那里我必须编写一些程序,可以绘制和删除矩形,并将它们叠加在一起。到目前为止,我唯一缺少的部分是移除部分。 这就是我调用的在画布上创建矩形的方法:

private void zeichneRechtecke(double x, int y, double breite, String typ) {
    int hoehe = 15;
    
    GraphicsContext g = stapelCanvas.getGraphicsContext2D();
        
    g.strokeRect(x, y, breite, hoehe);
    
    g.strokeText(typ, x + breite + 5, y + 5 );
    
}

现在,我需要一种方法来删除堆栈顶部的矩形(图片上的矩形旁边有“rund”)。

注意,当绘制矩形时,会丢失下面的图片信息,因此很难进行真正的撤消。对于每个绘制的矩形,您必须在覆盖它们之前备份像素,以便在需要时恢复它们

另一种方法是存储信息以重新创建图片。这意味着您有一个背景图片和一个包含所有需要绘制的矩形的集合。无论何时需要结果,都可以快速绘制背景并添加所有矩形。
如果有,删除矩形意味着将其从集合中删除并触发重画。

不要期望其他人做你的作业。我不希望其他人做我的作业,我正在寻找一些想法和输入,因为谷歌搜索这类问题对我毫无帮助。那么有可能将我创建的矩形的信息存储在一个数组中吗?如果我想删除最上面的一个,我会从数组中删除信息,清除画布并再次打印包含该数组中信息的矩形??这就是有多少GUI框架和应用程序执行此类操作,是的。