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:
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.
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