Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Aufgabe3_2.java

Java source code icon Aufgabe3_2.java — Java source code, 2 KB (2117 bytes)

Dateiinhalt

import java.awt.Graphics2D;
import java.awt.Point;

/**
 * Halbfertige Lösung für Aufgabe 3-2.
 * 
 */
public class Aufgabe3_2 {

    public static void main(String[] args) {

	// Größe des Fenster:
	int xsize = 500, ysize = 500;
	// Mittelpunkte der Kreise:
	int x1 = 225, y1 = 250;
	int x2 = 275, y2 = 250;
	// Radien der großen und kleinen Kreise
	int radiusL = 20;
	int radiusS = 8;

	CanvasFrame frame = new CanvasFrame("Aufgabe 3-2", xsize, ysize);

	Graphics2D canvas = frame.getGraphics();
	canvas.clearRect(0, 0, xsize, ysize);
	canvas.drawOval(x1 - radiusL, y1 - radiusL, 2 * radiusL, 2 * radiusL);
	canvas.drawOval(x2 - radiusL, y2 - radiusL, 2 * radiusL, 2 * radiusL);
	canvas.fillOval(x1 - radiusS, y1 - radiusS, 2 * radiusS, 2 * radiusS);
	canvas.fillOval(x2 - radiusS, y2 - radiusS, 2 * radiusS, 2 * radiusS);
	frame.repaint();

	// "while (true) { ... }" bedeutet, dass die Anweisungen in den
	// geschweiften Klammern immer wieder wiederholt werden (so lange
	// bis der Benutzer das Fenster schließt).
	while (true) {

	    // Warte solange, bis die Maus bewegt wurde.
	    Point mousePosition = frame.waitMouseMoved();

	    // Lösche den gesamten Fensterinhalt.
	    canvas.clearRect(0, 0, xsize, ysize);

	    // Zeichne die großen Kreise neu.
	    canvas.drawOval(x1 - radiusL, y1 - radiusL, 2 * radiusL,
		    2 * radiusL);
	    canvas.drawOval(x2 - radiusL, y2 - radiusL, 2 * radiusL,
		    2 * radiusL);

	    // Zeichne die kleinen gefüllten Kreise neu.
	    // Diese Kreise haben hier immer noch die Mittelpunkte (x1,y1) und
	    // (x2,y2). Eigentlich müssten sie verschoben sein.
	    canvas.fillOval(x1 - radiusS, y1 - radiusS, 2 * radiusS,
		    2 * radiusS);
	    canvas.fillOval(x2 - radiusS, y2 - radiusS, 2 * radiusS,
		    2 * radiusS);

	    // Hier werden als Beispiel, wie man auf die Koordinaten der Maus
	    // zugreift, die Linien gezeichnet, entlang derer die Kreise
	    // verschoben werden sollen.
	    canvas.drawLine(x1, y1, mousePosition.x, mousePosition.y);
	    canvas.drawLine(x2, y2, mousePosition.x, mousePosition.y);

	    frame.repaint();
	}
    }
}

Artikelaktionen


Funktionsleiste