zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels vorheriger Abschnitt

Elementare Grafikfunktionen in JavaFX


Verwendung der Klasse Canvas

Die Voreinstellungen von Canvas definieren dieses Darstellungselement als nicht größenveränderlich. Diese Voreinstellung ist für die Anzeige von Bildern zweckmäßig. Sie eignet sich weniger gut für Diagramme und Präsentationsgrafiken, die sich in der Regel der Fenstergröße anpassen sollen.

Das erste Beispiel platziert ein Panel, das mit einer Canvas ausgestattet ist, in der Scene und stellt die Scene ins Hauptfenster ein. In die Canvas wird ein farbig ausgefülltes und umrandetes Rechteck gezeichnet, dessen Größe so gewählt wird, dass es die Canvas fast vollständig ausfüllt. Für die Herstellung des Diagramms wird auf den mit der Canvas bereitgestellten GraphicsContext zurückgegriffen.

So sieht das Fenster aus:

Fenster mit einer nicht gröszlig;enveränderlichen Zeichenfläche

Das Programm für die Herstellung dieses Fensters

package main;

import javafx.application.Application;
import javafx.geometry.Bounds;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 * Das Beispiel zeigt die Verwendung einer Instanz von Canvas.
 * Es wird ein umrandetes Rechteck gezeichnet.
 * Die Instanz von Canvas ist nicht größenveränderlich.
 * @author
 */
public class FXGraphicsDemo01 extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Canvas c = new Canvas(250, 250);
        GraphicsContext gc = c.getGraphicsContext2D();
        Pane pane = new Pane(c);
        
        Scene scene = new Scene(pane, 250, 250);
        gc.setFill(Color.DARKGOLDENROD);
        Bounds b = gc.getCanvas().getBoundsInLocal();
        gc.fillRect(10, 10, b.getWidth() - 20, b.getHeight() - 20);
        gc.setStroke(Color.GREEN);
        gc.setLineWidth(5.0);
        gc.strokeRect(10, 10, b.getWidth() - 20, b.getHeight() - 20);
        primaryStage.setTitle("Graphics Demo");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Wenn du die Größe des Fensters veränderst, wirst du bemerken, dass das umrandete Rechteck unverändert bleibt.

Archivdatei mit diesem Beispiel: FXGraphicsDemo01.zip.


vorheriger Abschnitt zur Inhaltsübersicht des Kapitels nächster Abschnitt