Beispiel1.java
Beispiel für CanvasFrame
Beispiel1.java
—
Java source code,
2 KB (2245 bytes)
Dateiinhalt
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; /** * Ein Beispiel für die Benutzung der Klasse {@link CanvasFrame}. * */ public class Beispiel1 { public static void main(String[] args) { int xsize = 500, ysize = 500; // Der folgende Befehl öffnet ein Fenster, welches eine weiße // Zeichenfläche enthält, welche xsize Pixel breit und // ysize Pixel hoch ist. CanvasFrame frame = new CanvasFrame("Beispiel 1", xsize, ysize); // Um auf der Zeichenfläche des Fensters zeichnen zu können, benutzen // wir ein Objekt vom Typ Graphics2D, welches wir durch den // Methodenaufruf frame.createGraphics() erhalten. Graphics2D canvas = frame.getGraphics(); // Nun können wir auf dem "canvas" zeichnen. // Die Klasse Graphics2D stellt dafür eine große Anzahl von Methoden // bereit. Hier sind ein paar Beispiele. canvas.drawString("Ein paar Beispielformen.", 10, 20); canvas.drawString("Durch Mausklick können Punkte markiert werden.", 10, 40); canvas.setColor(Color.GREEN); canvas.drawRect(100, 100, 200, 90); canvas.setColor(Color.YELLOW); canvas.fillRect(100, 400, 100, 20); canvas.setColor(Color.RED); canvas.drawOval(200, 200, 200, 100); canvas.setColor(Color.BLUE); canvas.fillOval(350, 240, 20, 20); canvas.setColor(Color.BLACK); canvas.drawLine(100, 70, 200, 200); // Die Änderung am "canvas" sind noch nicht sichtbar! // Sie werden erst sichtbar, wenn wir das Fenster // neu gezeichtnet wird. Das kann man so erreichen: 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) { // Der folgende Befehl wartet so lange, bis der Benutzer mit // der Maus in das Fenster geklickt hat. Die Position des Mausklicks // wird als Point p zurückgegeben. Die horizontale Koordinate des // Punkts ist der int-Wert p.x , die vertikale Koordinate ist der // int-Wert p.y. Point p = frame.waitMouseClicked(); // Zeichnen eines Kreises an der Position des Klicks. int radius = 3; canvas.fillOval(p.x - radius, p.y - radius, 2 * radius, 2 * radius); frame.repaint(); } } }
Artikelaktionen