Löschen Sie die Leinwand in JavaFX

MD Aminul Islam 15 Februar 2024
Löschen Sie die Leinwand in JavaFX

In JavaFX ist die Leinwand so etwas wie das Bild, das verschiedene Formen und Komponenten mithilfe einer Reihe von Grafikbefehlen zeichnet. Dieser Knoten wird mit der erforderlichen Höhe und dem erforderlichen Gewicht konstruiert.

Mit JavaFX Canvas können Sie eine UI-Komponente erstellen, auf der Sie verschiedene Formen wie Rechtecke, Ovale, Kreise usw. auf dem Bildschirm zeichnen können. Diese spezielle UI-Komponente heißt Canvas.

Aber manchmal müssen wir unsere Zeichnung auf Leinwand entfernen oder ändern.

In diesem Artikel werden wir sehen, wie wir eine Leinwand entfernen oder löschen können. Wir diskutieren dieses Thema auch mit den notwendigen Codes und Erklärungen, um es leichter verständlich zu machen.

Löschen Sie die Leinwand in JavaFX

Eine Methode namens clearRect() ermöglicht es uns, eine bestimmte Komponente zu entfernen oder die Leinwand zu löschen. Lassen Sie es uns im Detail besprechen.

Um ein Oval auf der Leinwand zu erstellen, können wir den folgenden Code verwenden,

Diameter = Math.max(Width,
    Height); // Create a mathematical calculation for the ovel with necessary height an weight
if (filledColor == null)
  g.drawOval(x, y, Width, Height); // Draw the oval without fill it with color
else
  g.fillOval(x, y, Width, Height); // Draw the oval and fill it with color
break;

Nachdem Sie diesen Code in Ihr Programm aufgenommen haben, sehen Sie ein Oval auf Ihrer Leinwand gezeichnet. Um das Oval von der Leinwand zu entfernen oder die Leinwand zu löschen, können wir den folgenden Code verwenden.

g.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());

Der oben geteilte Code entfernt Ihre Zeichnung und löscht den Bildschirm.

Das allgemeine Format dieser Methode ist:

clearRect( X_Position, Y_Position, Canvas_Height, Canvas_Width )

Sie können dies als Aktion einer Schaltfläche einschließen, die nur zum Löschen der Leinwand verwendet wird.

Unten ist ein Beispiel für eine einfache Leinwand mit dieser Methode

import javafx.application.Application;
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;

public class FxCanvas extends Application {
  public static void main(String[] args) {
    Application.launch(args); // Launch the application
  }

  @Override
  public void start(Stage PrimaryStage) {
    Canvas canvas = new Canvas(500, 200); // Create the Canvas
    GraphicsContext g = canvas.getGraphicsContext2D(); // Create a 2D graphics context on the canvas
    g.setLineWidth(3.0); // Set line width
    g.setFill(Color.RED); // Set fill color
    g.fillRoundRect(50, 50, 300, 100, 10, 10); // Draw a rounded Rectangle on the canvas
    g.clearRect(80, 80, 140, 50); // Clear the rectangular area from the canvas
    Pane pn = new Pane(); // Create a Pane
    // Provide necessary styles
    pn.setStyle(
        "-fx-padding: 10; -fx-border-style: solid inside; -fx-border-width: 2; -fx-border-insets: 5; -fx-border-radius: 5; -fx-border-color: blue;");
    pn.getChildren().add(canvas); // Add the canvas to the Pane
    Scene scene = new Scene(pn); // Create a Scene
    PrimaryStage.setScene(scene); // Add the Scene to the Stage
    PrimaryStage.setTitle("Clearing Canvas area"); // Set the title of the application
    PrimaryStage.show(); // Display the Stage
  }
}

Nachdem Sie den obigen Beispielcode kompiliert und in Ihrer Umgebung ausgeführt haben, erhalten Sie die folgende Ausgabe.

Ausgang:

JavaFX Clear Canvas Output

Denken Sie daran, wenn Ihre IDE das automatische Einbinden von Bibliotheken und Paketen nicht unterstützt. Dann müssen Sie möglicherweise diese erforderlichen Bibliotheken und Pakete einschließen, bevor Sie sie manuell kompilieren.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - Java JavaFX