Zielony Smok

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 strokeRoundRect
Rys. 25_07. Metoda strokeRoundRect

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):

Metoda fillRoundRect
Rys. 25_08. Metoda fillRoundRect

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.