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.