일반적으로 2D 도형(Shape)이란 XY 평면 위에 그릴 수 있는 기하학적 도형을 의미합니다. 여기에는 선(Line), 사각형(Rectangle), 원(Circle) 등이 포함됩니다.
JavaFX의 javafx.scene.shape 패키지는 다양한 클래스를 제공하며, 각 클래스는 2D 기하학 객체 또는 이에 대한 연산(operation)을 정의합니다. 그중 Shape 클래스는 JavaFX의 모든 2차원 도형의 기본(base) 클래스 역할을 합니다.
2D 도형 만들기
JavaFX를 사용하여 2D 기하학 도형을 그리려면 다음 세 단계를 거쳐야 합니다.
1. 해당 클래스 인스턴스 생성
그리고자 하는 도형에 맞는 클래스를 인스턴스화합니다. 예를 들어 원을 그리고 싶다면 아래와 같이 Circle 클래스의 객체를 생성하면 됩니다.
// 원 그리기 Circle circle = new Circle();
2. 속성(Property) 설정
각 도형 클래스가 제공하는 메서드를 사용해 속성을 설정합니다. 예를 들어 원을 그리려면 중심 좌표와 반지름이 필요하며, setCenterX(), setCenterY(), setRadius() 메서드를 사용해 각각 지정할 수 있습니다.
// 원의 속성 설정 circle.setCenterX(300.0f); circle.setCenterY(135.0f); circle.setRadius(100.0f);
3. Group 객체에 도형 추가
마지막으로 생성한 도형 객체를 Group 생성자의 매개변수로 전달하여 화면에 포함시킵니다.
Group root = new Group(circle);
전체 예제 코드
아래는 위 과정을 모두 적용하여 JavaFX로 원을 그리는 완전한 예제입니다.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
public class CircleExample extends Application {
public void start(Stage stage) {
// 원 그리기
Circle circle = new Circle();
// 원의 속성 설정
circle.setCenterX(300.0f);
circle.setCenterY(135.0f);
circle.setRadius(100.0f);
// Group 객체 생성
Group root = new Group(circle);
// Scene 객체 생성
Scene scene = new Scene(root, 600, 300);
// Stage 제목 설정
stage.setTitle("Drawing a Circle");
// Stage에 Scene 추가
stage.setScene(scene);
// Stage 표시
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}실행 결과
위 코드를 실행하면 화면 중앙 부근(중심 X: 300, Y: 135)에 반지름 100픽셀 크기의 원이 그려진 600×300 크기의 창이 나타납니다.
