Beispiel 2
Beispiel für CanvasFrame
Beispiel2.java
—
Java source code,
1 KB (1958 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 Beispiel2 { 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 2", 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(); canvas.drawString("Kreis folgt dem Mauszeiger.", 10, 20); frame.repaint(); Point p = frame.waitMouseMoved(); // "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) { // Radius des Kreises, welcher der Maus folgt int radius = 40; // Lösche den gesamten Inhalt des Fensters. canvas.clearRect(0, 0, xsize, ysize); // Ausgabe der Position des Mauszeigers canvas.setColor(Color.BLACK); canvas.drawString("Kreis folgt dem Mauszeiger.", 10, 20); canvas.drawString("Position des Mauszeigers: " + "p.x==" + p.x + ", p.y==" + p.y + ".", 10, 40); // Zeichnen des Kreises um den Mauszeiger canvas.setColor(Color.getHSBColor(p.x / (float) xsize, 1.0f, 1.0f)); canvas.drawOval(p.x - radius, p.y - radius, 2 * radius, 2 * radius); // Führe die Zeicheninstruktionen tatsächlich aus. frame.repaint(); // Warte nun so lange, bis der Benutzer die bewegt. Hat er sie // bewegt, so wird dem Punkt p die neue Position der Maus // zugewiesen. p = frame.waitMouseMoved(); // Nun geht es wieder am Anfang des Blocks weiter. } } }
Artikelaktionen