HOWTO · Java

Como desenhar um retângulo no JavaFX

Este tutorial demonstra como desenhar um retângulo no JavaFX.

Nesta página

Em JavaFX, crie um Rectangle, defina sua posição, seu tamanho, preenchimento e contorno; em seguida, adicione-o a uma Scene exibida por um Stage. A forma usa o sistema de coordenadas da cena, cuja origem fica no canto superior esquerdo. As chamadas e os nomes de propriedades do JavaFX abaixo mostram a configuração a ser usada em um projeto JavaFX. O ambiente de execução Java configurado não inclui JavaFX, portanto não é possível compilar nem executar nele a aplicação gráfica deste exemplo.

Desenhar um retângulo em JavaFX

A classe Rectangle pertence ao pacote javafx.scene.shape. As propriedades x e y especificam o canto superior esquerdo, enquanto width e height definem as dimensões. Essas propriedades aceitam valores double. Uma cena de 800 por 400 unidades pode conter um retângulo posicionado em (200, 100), com largura de 400 e altura de 200.

Propriedade Método setter Descrição
x setX(double) Posição horizontal do canto superior esquerdo.
y setY(double) Posição vertical do canto superior esquerdo.
width setWidth(double) Largura do retângulo.
height setHeight(double) Altura do retângulo.
arcWidth setArcWidth(double) Diâmetro horizontal usado para arredondar os cantos.
arcHeight setArcHeight(double) Diâmetro vertical usado para arredondar os cantos.

A versão em JavaFX usa rectangle.setX(200), rectangle.setY(100), rectangle.setWidth(400) e rectangle.setHeight(200). Defina o preenchimento com rectangle.setFill(Color.BLUE) e o contorno com rectangle.setStroke(Color.LIGHTBLUE); rectangle.setStrokeWidth(8) controla a espessura do contorno. Adicione a forma a um Group, crie uma Scene com as dimensões e o plano de fundo desejados, atribua a cena a um Stage e chame stage.show() no método start da aplicação. A classe estende Application e seu método main chama launch(args). Execute esta versão em um projeto JavaFX cuja configuração de compilação ou inicialização disponibilize os módulos JavaFX.

O programa Java2D executável a seguir desenha a mesma geometria em uma imagem em memória e informa a cor do preenchimento em um ponto amostrado. Ele ilustra a posição e o tamanho sem depender do JavaFX; não executa nem exibe uma cena 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 arredondar a forma JavaFX, defina ambas as propriedades de arco depois das dimensões: rectangle.setArcWidth(40) e rectangle.setArcHeight(40). setArcWidth controla o diâmetro horizontal da curva, e setArcHeight controla o diâmetro vertical. Valores iguais produzem cantos com uma curva uniforme; valores diferentes criam uma curva alongada. Essas configurações alteram os cantos sem modificar a posição, as dimensões gerais, o preenchimento ou o contorno já definidos.