Hallo Leute, wie kann ich in Java einen Kreis zeichnen lassen, der sich im JFrame erst aufbaut, also dass ich es mir angucken kann wie der Kreis gezeichnet w?
Ich bin noch ein ziemlicher Anfänger wenns ums Programmieren geht. Ich würde gerne ein Programm schreiben, dass es mir ermöglicht einen sich selbst malenden Kreis im JFrame zu sehen. Hoffe dass man die Frage verstehen konnte und danke schon mal im voraus für Antorten. LG :)
2 Antworten
Du benötigst eine Verzögerung beim Zeichnen. Die erreichst du mittels eines Timers. Wenn du punktweise zeichnen lässt, dürfte es die flüssigste Animation ergeben.
Berechne jeden Punkt des Kreises, wobei r der Kreisradius ist, a der Winkel in Bogenmaß und der Mittelpunkt des Kreises K bei (c/d) liegt.
x = r * cos(a) + c;
y = r * sin(a) + d;
Mit der drawOval-Methde kannst du Punkt für Punkt zeichnen.
Als Timer bieten sich folgende Optionen an:
Das zu machen ist einfach, das RICHTIG zu machen ist sehr schwer.
Einfache Methode: Den Kreis Punkt für Punkt zeichnen und dabei nahc jedme Punkt eine Verzögerung erzeugen. Das dafür nötige findest du in der Klasse java.lang.Thread.
Problem dabei ist, dass das Programm wen die Schleife in paint() ist absurd schlechte Performance haben wird und der Kreis beim Verdecken des Fensters komplett gelöscht wird.
RICHTIGE Methode:
Ein Offscreen-Image erstellen, dieses in einem Thread nahc und nach mit einem Kreis füllen und nach jedem Punkt das GUI zum neu zeichnen zwingen.
ich habe es mit einem timer probiert. ich habe eine variable die ich "winkel" genannt habe immer um 10 vergrößert und dann das gemacht:
g.drawArc(Var.x, Var.y, 50, 50, 0, Var.winkel);
aber das klappt irgendwie nicht :(