# Zeichnen auf smartgwt Canvas



## Heady86 (19. Okt 2009)

Hi,

ich hab ein Canvas von smartgwt (com.smartgwt.client.widgets.Canvas finde nun aber keine Möglichkeit darauf zu zeichnen. Beim normalen gwt gibts ja unterschiedliche Möglichkeiten wie Rectangle usw. Wie kann ich aber ein Rechteck (oder Linie) im smartgwt Canvas zeichnen?

Hab mal versucht mit:

```
Rectangle rect = new Rectangle(50,100,100,100);
canvas.addChild(rect);
```

aber das geht nicht da für addChild ein canvas/widget übergeben werden muss.

Grüße


----------



## Geeeee (19. Okt 2009)

Das Rectangle ist nur eine "Größenbeschreibung". Es handelt sich dabei nicht um ein Grafikobjekt. Wenn du ein Rectangle brauchst, dann mach einen Canvas und füge ihn deinem jetzigen hinzu:

```
Canvas canvas = new Canvas("canvas");

Canvas rectCanvas = new Canvas("rectCanvas");
rectCanvas.setWidth(100);
rectCanvas.setHeight(100);
rectCanvas.setBorder("1px dotted black");
rectCanvas.setLeft(50);
rectCanvas.setTop(50);
        
canvas.addChild(rectCanvas);
```
Aber ich verstehe trotzdem das "malen" noch immer nicht. Ich weiß nicht, wer die sowas gesagt hat, aber afaik ist es überhaupt nicht vorgesehen, dass man z.B. ne Linie irgendwo hinpacken kann. Wir sind nicht in der Swing-Welt, wo du einfach mal so ne Linie in ein GrafikObject packen kannst.
Falls ich mich irren sollte und man doch irgendein JS anstoßen kann, der Linien malt, wäre ich über die Info dankbar (man lernt ja nie aus).


----------



## Heady86 (19. Okt 2009)

Ah danke, dann hab ich das Rectangle falsch verstanden, danke für den Code, funktioniert 

Also bei gwt kann ich mit paar Dingen auf ein Canvas ohne Probleme Objekte einfügen. Kannst hier mal schauen.

Ansonsten kann man sich auch so behelfen dass man z.B. ein Rechteck so macht auf nem gwt canvas:

```
Canvas c = new Canvas();
c.setLineWidth(1);
c.setStrokeStyle(Color.Blue);

c.beginPath();
c.moveTo(0,0);
c.lineTo(0,300);
c.lineTo(300,300);
c.lineTo(300, 0);
c.closePath();

c.stroke();
```
Dann hat man auch ein Rechteck, allerdings ging das bei smartgwt nicht

Danke und Grüße


----------



## Geeeee (19. Okt 2009)

Naja..ok..das ist ja wiederum eine externe Lib für GWT.


----------



## Heady86 (20. Okt 2009)

Morgen,



> Naja..ok..das ist ja wiederum eine externe Lib für GWT.



Genau, daher ja auch..



> bei gwt kann ich mit paar Dingen auf ein Canvas...


 

Grüße


----------

