Wie kann mit JavaFX ein Bild gezeichnet werden?

Die Klasse javafx.scene.canvas.Canvas ist ein Image-Element, auf das mittels seines GraphicsContext2D gezeichnet werden kann.

Im Beispiel wird ein BorderPane erzeugt, auf das mittig ein Canvas-Objekt gesetzt wird. Seine Methode getGraphicsContext2D() ermittelt das GraphicsContext-Objekt, das dann verwendet wird, um frei nach Josef Albers' "Hommage to the Square" drei Quadrate unterschiedlicher Farbe auf den Canvas-Node mit der ebenfalls eingefärbten Scene zu zeichnen.

public class CanvasBsp extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        BorderPane root = new BorderPane();
        Scene s = new Scene(root, 300, 300, Color.rgb(230, 185, 120));

        final Canvas canvas = new Canvas(300, 300);
        root.setCenter(canvas);
        drawSquares(canvas.getGraphicsContext2D());
        primaryStage.setScene(s);
        primaryStage.show();
    }
    
    private void drawSquares(GraphicsContext gc) {
        gc.setFill(Color.rgb(255, 120, 35));
        gc.fillRect(25, 30, 250, 250);
        
        gc.setFill(Color.rgb(255, 135, 5));
        gc.fillRect(60, 85, 180, 180);

        gc.setFill(Color.rgb(5, 180, 180));
        gc.fillRect(85, 125, 130, 130);
    }
}

Drei Quadrate auf Canvas gezeichnet

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.