Borrar el lienzo en JavaFX

MD Aminul Islam 15 febrero 2024
Borrar el lienzo en JavaFX

En JavaFX, el lienzo es algo así como la imagen que dibuja varias formas y componentes utilizando un conjunto de comandos gráficos. Este nodo se construye con la altura y el peso necesarios.

Usando el lienzo JavaFX, puede crear un componente de interfaz de usuario en el que puede dibujar varias formas como rectángulos, óvalos, círculos, etc., en la pantalla. Ese componente especial de la interfaz de usuario se llama lienzo.

Pero a veces, necesitamos eliminar o modificar nuestro dibujo en el lienzo.

En este artículo, veremos cómo podemos eliminar o borrar un lienzo. También tratamos este tema con los códigos y explicaciones necesarios para que sea más fácil de entender.

Borrar el lienzo en JavaFX

Un método llamado clearRect() nos permite eliminar un componente específico o borrar el lienzo. Vamos a discutirlo en detalle.

Para crear un óvalo en el lienzo, podemos usar el siguiente código,

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;

Después de incluir este código en su programa, verá un óvalo dibujado en su lienzo. Para eliminar el óvalo del lienzo o borrar el lienzo, podemos usar el siguiente código.

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

El código compartido anteriormente eliminará su dibujo y borrará la pantalla.

El formato general de este método es:

clearRect( X_Position, Y_Position, Canvas_Height, Canvas_Width )

Puede incluir esto como una acción de un botón que solo se usará para limpiar el lienzo.

A continuación se muestra un ejemplo de un lienzo simple con este método

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
  }
}

Después de compilar el código de ejemplo anterior y ejecutarlo en su entorno, obtendrá el siguiente resultado.

Producción:

Salida de lienzo claro de JavaFX

Recuerde, si su IDE no admite la inclusión automática de bibliotecas y paquetes. Luego, es posible que deba incluir estas bibliotecas y paquetes necesarios antes de compilarlos manualmente.

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

Artículo relacionado - Java JavaFX