2017-02-28 4 views
0

Je suis nouveau à javaFX et que vous voulez essayer une application simple.
J'ai une application avec un canevas et je dessine un rectangle, mais je ne peux pas l'effacer correctement.Javafx clair caresser rectangle

Voici comment je débrouille:

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); 

Mais j'ai encore un rectangle gris au lieu de simplement rien. Je ne comprends pas pourquoi j'ai ça.
Peut-être que j'utilise mauvais Canvas ou quelque chose ..

Répondre

0

Est colorBackground gris? Ensuite, le problème est que vous n'effacez rien. Pour effacer la toile, utilisez GraphicsContext#clearRect. Ensuite, vous pouvez effacer votre rectangle (ou toute la toile) comme ceci:

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

Notez que cela effacera le rectangle désiré avec une couleur transparente, pas à votre colorBackground spécifiée. Pour émuler un arrière-plan coloré, vous pouvez placer un Node opaque (tel qu'un autre Canvas) derrière votre Canvas, afin que la transparence rende ce nœud "d'arrière-plan" coloré visible.

+0

Ma couleur de fond est blanche en fait, j'ai essayé avec clearRect mais sans succès. – Irindul

+0

Il a travaillé avec la toile de fond, merci! – Irindul