JavaFX canvas: rysowanie prostokąta zaokrąglonego
Metoda void strokeRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)
x
– współrzędna x
lewego górnego wierzchołka.
y
– współrzędna y
lewego górnego wierzchołka.
w
– szerokość prostokąta w środku owalu.
h
– wysokość prostokąta w środku owalu.
arcWidth
– szerokość łuku rogów prostokąta
arcHeight
– wysokość łuku rogów prostokąta
Rysuje kontur prostokąta.
Podlega atrybutom wspólnym i atrybutom obwiedni
KlasaListing25_22a
Ściągnij klasę Listing25_22a
package rozdzial25c; import javafx.application.Application; import javafx.application.Platform; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.stage.Stage; public class Listing25_22a extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { try { Group root = new Group(); Canvas cv = new Canvas(300, 300); GraphicsContext gc = cv.getGraphicsContext2D(); //- gc.strokeRoundRect(50,50,200,100, 20, 20); //- root.getChildren().add(cv); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Metoda strokeRoundRect"); stage.setOnCloseRequest(e -> Platform.exit()); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
Ustawione są jedynie domyślne atrybuty renderowania.
Wynik uruchomienia klasy Rys. 25_07:
Metoda void fillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)
x
– współrzędna x
lewego górnego wierzchołka.
y
– współrzędna y
lewego górnego wierzchołka.
w
– szerokość prostokąta w środku owalu
h
– wysokość prostokąta w środku owalu.
arcWidth
– szerokość łuku rogów prostokąta
arcHeight
– wysokość łuku rogów prostokąta
Rysuje wypełnienie prostokąta.
Podlega atrybutom wspólnym i atrybutom wypełnienia.
Klasa Listing25_22b
Ściągnij klasę Listing25_22b
package rozdzial25c; import javafx.application.Application; import javafx.application.Platform; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.stage.Stage; public class Listing25_22b extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { try { Group root = new Group(); Canvas cv = new Canvas(300, 300); GraphicsContext gc = cv.getGraphicsContext2D(); //- gc.fillRoundRect(50,50,200,100, 20, 20); //- root.getChildren().add(cv); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Metoda fillRoundRect"); stage.setOnCloseRequest(e -> Platform.exit()); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
Ustawione są jedynie domyślne atrybuty renderowania.
Wynik uruchomienia klasy (Rys. 25_08):
Warto zapamiętać
Promień łuku na rys. 25_7 wynosi 10 px
. Ponieważ podajemy średnicę łuku, a więc i średnicę koła, wartość wstawiona do metody wynosi 20 px
.