# Kreis, Rechteck, Linie. verschieben



## RawBit (7. Apr 2006)

```
public void paint( Graphics g )
{
   g.fillRect( 50, 50, 100,  100);
}
```

lässt sich das noch verschieben?
wie macht amn denn das das man es verschieben kann?


----------



## jabbah (7. Apr 2006)

was meinst du genau mit verschieben? direkt verschieben lasst es sich nicht. du musst erst die Oberfläche wieder leeren und dann alle element, bis auf das was weg soll, wo anders hin malen

oder willst du schon gezeichnete elemente verschieben? Dann würde ich das über ein Drag & Drop realisieren. du merkst dir die koordinaten wo hingeklickt wurde, überprüfst um welches Element es sich handelt und malst es an die stelle wo die maus wieder fallen gelassen wurde.

Um zu überprüfen, welches element angeklickt wurde, würde ich eine abstrakte klasse element schreiben, sie sich die Koordinaten merkt und dann schreibst du deine unterklassen kreis, viereck, linie die dann alle von element abgeleitet sind. so kannst du jedes grafische element in einer Liste speichern und diese dann von hinten nach vorne durchsuchen, welches element zu diesen Koordinaten gehört. denn falls mehrere Objekte übereinander lieger, wird der User mit sicherheit das zu letzt gezeichnete Objeckz angeklickt haben.



dafür gibt es bestimmt auch eine einfachere und effizientere Lösung, aber das fällt mir so gnaz spontan dazu ein.


----------



## RawBit (7. Apr 2006)

es soll nur so ein ball weder der mit physikalischen berechnungen gegen wände abprallt (brauch ich für physik unterreicht  )


----------



## jabbah (7. Apr 2006)

dann würd ich ganz einfach einen kreis auf ein Label malen. und das Label genauso groß, wie dein kreis sein soll. dann brauchst du nur das label neu zu positionieren.

oder besser wäre glaub ich:


```
Graphics.clearRectangle(x-Koord_alt, y-Koord_alt, radius, radius);
Graphics.drawOval( x-Koord_neu, y-Koord_neu, radius, raudius);
```


----------



## RawBit (7. Apr 2006)

geht nicht...

we ladet man so was auf ein label/panel ?


----------



## L-ectron-X (8. Apr 2006)

Du schreibst eine Klasse, lässt sie von Label oder JLabel erben und überschreibst die paint()- bzw. die paintComponent()-Methode.


----------

