HOWTO · Java
Cómo dibujar un rectángulo en JavaFX
Este tutorial muestra cómo dibujar un rectángulo en JavaFX.
En esta página
En JavaFX, crea un Rectangle, establece su posición, tamaño, relleno y contorno, y añádelo a una Scene que se muestra en un Stage. La forma usa el sistema de coordenadas de la escena, cuyo origen está en la esquina superior izquierda. Las llamadas y los nombres de propiedades de JavaFX que aparecen a continuación muestran la configuración que se debe usar en un proyecto JavaFX. El entorno de ejecución Java configurado no incluye JavaFX, por lo que la aplicación gráfica no se puede compilar ni ejecutar en este entorno de ejemplo.
Dibujar un rectángulo en JavaFX
La clase Rectangle pertenece al paquete javafx.scene.shape. Sus propiedades x e y indican la esquina superior izquierda, mientras que width y height especifican las dimensiones. Estas propiedades aceptan valores double. En una escena de 800 por 400 unidades se puede colocar un rectángulo en (200, 100), con un ancho de 400 y una altura de 200.
| Propiedad | Setter | Descripción |
|---|---|---|
x |
setX(double) |
Posición horizontal de la esquina superior izquierda. |
y |
setY(double) |
Posición vertical de la esquina superior izquierda. |
width |
setWidth(double) |
Ancho del rectángulo. |
height |
setHeight(double) |
Altura del rectángulo. |
arcWidth |
setArcWidth(double) |
Diámetro horizontal usado para redondear las esquinas. |
arcHeight |
setArcHeight(double) |
Diámetro vertical usado para redondear las esquinas. |
La versión de JavaFX usa rectangle.setX(200), rectangle.setY(100), rectangle.setWidth(400) y rectangle.setHeight(200). Define el relleno con rectangle.setFill(Color.BLUE) y el contorno con rectangle.setStroke(Color.LIGHTBLUE); rectangle.setStrokeWidth(8) controla el grosor del contorno. Añade la forma a un Group, crea una Scene con las dimensiones y el fondo deseados, asigna la escena a un Stage y llama a stage.show() desde el método start de la aplicación. La clase extiende Application y su método main llama a launch(args). Ejecuta esta versión desde un proyecto JavaFX cuya configuración de compilación o ejecución tenga disponibles los módulos de JavaFX.
El siguiente programa ejecutable de Java2D dibuja la misma geometría en una imagen en memoria e informa del color de relleno muestreado. Sirve para ilustrar la posición y el tamaño sin depender de JavaFX; no ejecuta ni muestra una escena JavaFX.
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
public class DrawRectangle {
public static void main(String[] args) {
System.setProperty("java.awt.headless", "true");
BufferedImage image = new BufferedImage(800, 400, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setColor(Color.BLUE);
graphics.fillRect(200, 100, 400, 200);
graphics.dispose();
Color sample = new Color(image.getRGB(250, 150));
System.out.printf("Rectangle: x=%d, y=%d, width=%d, height=%d%n", 200, 100, 400, 200);
System.out.printf("Sample fill: #%02X%02X%02X%n", sample.getRed(), sample.getGreen(), sample.getBlue());
}
}
Rectangle: x=200, y=100, width=400, height=200
Sample fill: #0000FF
Para redondear la forma JavaFX, establece ambas propiedades de arco después de definir sus dimensiones: rectangle.setArcWidth(40) y rectangle.setArcHeight(40). setArcWidth controla el diámetro horizontal de la curva y setArcHeight controla el diámetro vertical. Con valores iguales, las esquinas tienen una curva uniforme; con valores distintos, la curva queda alargada. Estos ajustes modifican las esquinas y mantienen la posición, las dimensiones generales, el relleno y el contorno del rectángulo tal como se habían configurado.