Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

JavaFX에서 경로 요소 선(Line) 만드는 방법 완벽 가이드

JavaFX에서 javafx.scene.shape.LineTo 클래스는 경로(Path)를 구성하는 요소 중 하나인 선(line)을 나타냅니다. 이 클래스를 활용하면 현재 좌표에서 새로 지정한 좌표까지 직선을 손쉽게 그릴 수 있습니다.

LineTo로 선 경로 요소 만들기

선 경로 요소를 생성하려면 다음 단계를 순서대로 따르면 됩니다.

  • LineTo 클래스의 인스턴스를 생성합니다.
  • 세터(setter) 메서드를 사용하거나 생성자에 값을 전달하여 클래스의 속성(x, y 좌표)을 설정합니다.
  • Path 클래스의 인스턴스를 생성합니다.
  • getElements() 메서드를 호출하여 앞서 만든 Path 객체의 관찰 가능 리스트(observable list)를 가져옵니다.
  • add() 메서드(또는 addAll())를 사용해 생성한 LineTo 객체를 해당 리스트에 추가합니다.
  • 마지막으로, 완성된 경로를 Group 객체에 추가하면 화면에 표시됩니다.

예제 코드

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 LineToExample extends Application {
    public void start(Stage stage) {
        // PathElement 객체 생성
        MoveTo moveTo = new MoveTo(208, 71);
        LineTo line1 = new LineTo(421, 161);
        LineTo line2 = new LineTo(226, 232);
        LineTo line3 = new LineTo(332, 52);

        // Path 생성 및 요소 추가
        Path path = new Path();
        path.getElements().addAll(moveTo, line1, line2, line3);

        // 기타 속성 설정
        path.setStrokeWidth(8.0);
        path.setStroke(Color.DARKSLATEGREY);

        // Stage 준비
        Group root = new Group(path);
        Scene scene = new Scene(root, 595, 300, Color.BEIGE);
        stage.setTitle("JavaFX Example");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String args[]) {
        launch(args);
    }
}

코드 설명

위 예제에서는 먼저 MoveTo 객체로 시작 좌표(208, 71)를 지정한 뒤, 세 개의 LineTo 객체를 이용해 각각 다른 좌표로 이어지는 직선들을 정의했습니다. 이 요소들을 Path에 추가하면 여러 개의 선이 연결된 복합 경로가 완성됩니다.

또한 setStrokeWidth() 메서드로 선의 두께를 8.0으로 설정하고, setStroke() 메서드로 선 색상을 진한 청록색(DARKSLATEGREY)으로 지정했습니다. 배경은 BEIGE 색상의 595×300 크기 씬(Scene)으로 구성되어 있습니다.

실행 결과

프로그램을 실행하면 시작점에서부터 각 좌표를 잇는 여러 개의 직선이 하나의 경로로 화면에 나타납니다. 이처럼 MoveTo와 LineTo를 조합하면 자유로운 형태의 선분 그래픽을 JavaFX 애플리케이션 안에서 간단하게 구현할 수 있습니다.