Javafx 清除描边矩形

Javafx clear stroking rectangle

我是 javaFX 的新手,想尝试一个简单的应用程序。
我有一个带有 Canvas 的应用程序,我画了一个矩形,但我无法正确擦除它的边框。

我是这样处理的:

Canvas canvas = new Canvas(WIDTH, HEIGHT);
GraphicsContext g = canvas.getGraphicsContext2D();

g.setFill(colorBackground);
g.fillRect(0, 0, WIDTH, HEIGHT);
g.setStroke(Color.BLACK);
g.strokeRect(200, 200, 10, 10);
g.setStroke(colorBackground);
g.strokeRect(200, 200, 10, 10);

但我仍然有一个灰色的矩形,而不是什么都没有。我不明白为什么我有这个。
也许我用错了Canvas什么的..

colorBackground是灰色的吗?那么问题是你没有擦除任何东西。要清除 canvas,请使用 GraphicsContext#clearRect。然后你可以像这样擦除你的矩形(或整个 canvas):

g.clearRect(200, 200, 10, 10);

请注意,这将用透明颜色清除所需的矩形,而不是您指定的 colorBackground。要模拟彩色背景,您可以在 Canvas 后面放置一个不透明的 Node(例如另一个 Canvas),这样透明度会使彩色 "background" 节点可见。