JavaFX canvas: Atrybut wypełnienia 'fill paint’
Atrybut: fill paint
Typ: Paint
Wartość domyślna: Color.BLACK
Getter: Paint getFill()
Setter: void setFill(Paint)
Save/restore: true
Opis: Farba Paint zastosowana do wypełnienia kształtu w operacji wypełnienia. Po klasie Paint
dziedziczą klasy: Color, ImagePattern, LinearGradient i RadialGradient.
Figury możemy więc wypełnić kolorem, gradientem liniowym lub radialnym albo teksturą.
Problem kolorów, w tym modele i palety kolorów) w JavaFX został szczegółowo omówiony w książce JavaFX 9. Tworzenie graficznych interfejsów użytkownika (rozdz 9. Feeria kolorów, str. 169 – 190).
Wypełnienie kolorem
Klasa Listing25_40a
Ściągnij klasę Listing25_40a
GraphicsContext gc = cv.getGraphicsContext2D();
//-
gc.setFill(Color.BLUE);
gc.fillRect(50,50,200,100);

Wypełnienie gradientem liniowym
Klasa Listing25_40b
Ściągnij klasę Listing25_40b
GraphicsContext gc = cv.getGraphicsContext2D();
//-
LinearGradient lg1 = new LinearGradient(0,0,1,0, true,
CycleMethod.NO_CYCLE, new Stop(0, Color.WHITE),
new Stop(1, Color.BLUE));
gc.setFill(lg1);
gc.fillRect(50,50,200,100);

Wypełnienie gradientem radialnym
Klasa Listing25_40c
Ściągnij klasę Listing25_40c
GraphicsContext gc = cv.getGraphicsContext2D();
//-
Stop[] stops ={new Stop(0, Color.WHITE),
new Stop(1, Color.RED)};
RadialGradient rg = new RadialGradient(-60,0.5,0.5,0.5,0.3,
true, CycleMethod.NO_CYCLE, stops);
gc.setFill(rg);
gc.fillOval(50,50,200,100);

Wypełnienie teksturą (deseniem)
Klasa Listing25_40d
Ściągnij klasę Listing25_40d
GraphicsContext gc = cv.getGraphicsContext2D();
//-
Image im = new Image(new FileInputStream(
"rozdzial25c/rozdzial25/images/laka.jpg"));
ImagePattern imp = new ImagePattern(im);
gc.setFill(imp);
gc.fillOval(50,50,200,100);

Wypełnienie deseniem proporcjonalnym
Klasa Listing25_40e
Ściągnij klasę Listing25_40e
GraphicsContext gc = cv.getGraphicsContext2D();
//-
Image im = new Image(new FileInputStream(
"rozdzial25c/rozdzial25/images/laka.jpg"));
ImagePattern imp = new ImagePattern(im, 0, 0, 0.2, 0.2, true);
gc.setFill(imp);
gc.fillOval(50,50,200,100);

Setter 'Paint getFill()’
Klasa Listing25_40f
Ściągnij klasę Listing25_40f
GraphicsContext gc = cv.getGraphicsContext2D();
//-
gc.setFill(Color.BLUE);
Paint p = gc.getFill();
System.out.println(p);
0x0000ffff
Widzimy tutaj kolor w modelu RGBA.

