javafx.scene.shape 패키지는 다양한 2D 모양을 그릴 수 있는 클래스를 제공하지만 이들은 선, 원, 다각형, 타원 등과 같은 원시적인 모양일 뿐입니다. 따라서 복잡한 사용자 정의 모양을 그리고 싶다면 Path 클래스를 사용해야 합니다.피>
경로 클래스
Path 클래스는 사용자 정의 경로를 그릴 수 있는 이 클래스를 사용하여 모양의 기하학적 윤곽을 나타냅니다.
사용자 정의 경로를 그리기 위해 JavaFX는 다양한 경로 요소를 제공하며 이 모든 요소는 javafx.scene.shape 의 클래스로 사용할 수 있습니다. 패키지.
-
LineTo − 이것은 경로 요소 line을 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표까지 직선을 그리는 데 도움이 됩니다.
-
HlineTo − 가로선 경로 요소를 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표까지 수평선을 그리는 데 도움이 됩니다.
-
VLineTo − 수직선 경로 요소를 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표까지 수직선을 그리는 데 도움이 됩니다.
-
QuadCurveTo − 2차 곡선 경로 요소를 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표로 2차 곡선을 그리는 데 도움이 됩니다.
-
CubicCurveTo − 입방 곡선 경로 요소를 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표로 3차 곡선을 그리는 데 도움이 됩니다.
-
호화 − 호 경로 요소를 나타내는 클래스입니다. . 현재 좌표에서 지정된(새) 좌표로 호를 그리는 데 도움이 됩니다.
-
이동 − 이 클래스를 사용하여 현재 좌표에서 새 좌표로 경로를 이동할 수 있습니다.
경로 요소를 사용하여 경로 만들기
Path 클래스에는 현재 경로의 경로 요소를 보유하는 관찰 가능한 목록이 포함되어 있습니다. 따라서 경로를 그리려면 -
-
필요한 PathElement 클래스를 인스턴스화합니다.
-
setter 메서드를 사용하여 각 경로의 속성을 설정하거나 생성자에 인수로 전달합니다.
-
Path 클래스를 인스턴스화합니다.
-
getElements()를 사용하여 위에서 생성한 Path의 관찰 가능한 목록 개체를 가져옵니다. 방법.
-
add() 또는 addAll() 메서드를 사용하여 모든 경로 요소 개체를 관찰 가능한 목록에 원하는 순서로 추가합니다.
-
마지막으로 Group 개체에 대한 경로를 추가합니다.
참고 − Path 클래스의 생성자에 경로 요소를 전달할 수도 있습니다.
예
다음 JavaFX 예제는 LineTo 경로 요소를 사용하여 경로를 생성합니다 -
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.stage.Stage; import javafx.scene.shape.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; public class PathElementsExample extends Application { public void start(Stage stage) { //Drawing the shape MoveTo moveTo = new MoveTo(208, 71); LineTo line1 = new LineTo(421, 161); LineTo line2 = new LineTo(226,232); LineTo line3 = new LineTo(332,52); LineTo line4 = new LineTo(369, 250); LineTo line5 = new LineTo(208, 71); //Creating a Path Path path = new Path(moveTo, line1, line2, line3, line4, line5); path.setFill(Color.DARKCYAN); path.setStrokeWidth(8.0); path.setStroke(Color.DARKSLATEGREY); //Preparing the Stage object Group root = new Group(path); Scene scene = new Scene(root, 595, 300, Color.BEIGE); stage.setTitle("Drawing an arc through a path"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
출력