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

JavaFX 2D 도형의 선 굵기(Stroke Width) 속성 완벽 정리

선 굵기(Stroke Width) 속성이란?

JavaFX에서 선 굵기(stroke width) 속성은 도형의 경계선 두께를 지정하는 속성입니다. javafx.scene.shape.Shape 클래스가 제공하는 setStrokeWidth() 메서드를 사용하면 손쉽게 설정할 수 있습니다.

이 메서드는 double 타입의 값을 매개변수로 받으며, 호출 시 지정한 두께만큼의 경계선이 도형 주위에 그려집니다.

만약 이 메서드에 아무 값도 전달하지 않으면, 선 굵기는 기본값인 1.0으로 자동 적용됩니다.

예제 코드

아래 예제는 마름모(Polygon) 도형 네 개를 화면에 배치하고, 각각 다른 선 굵기를 적용해 그 차이를 시각적으로 비교하는 프로그램입니다.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class StrokeWidthExample extends Application {
   public void start(Stage stage) {
      Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);

      Text label1 = new Text("Original Image");
      label1.setFont(font);
      label1.setX(250.0);
      label1.setY(125.0);
      Polygon rhombus1 = new Polygon(300.0, 0.0, 250.0, 50.0, 300.0, 100.0, 350.0, 50.0);

      Text label2 = new Text("Stroke Width: none");
      label2.setFont(font);
      label2.setX(25.0);
      label2.setY(275.0);
      Polygon rhombus2 = new Polygon(100.0, 150.0, 50.0, 200.0, 100.0, 250.0, 150.0, 200.0);
      rhombus2.setStroke(Color.BLUE);

      Text label3 = new Text("Stroke Width: 3");
      label3.setFont(font);
      label3.setX(250.0);
      label3.setY(275.0);
      Polygon rhombus3 = new Polygon(300.0, 150.0, 250.0, 200.0, 300.0, 250.0, 350.0, 200.0);
      rhombus3.setStroke(Color.BLUE);
      rhombus3.setStrokeWidth(3.0);

      Text label4 = new Text("Stroke Width: 10");
      label4.setFont(font);
      label4.setX(430.0);
      label4.setY(275.0);
      Polygon rhombus4 = new Polygon(490.0, 150.0, 440, 200.0, 490.0, 250.0, 540.0, 200.0);
      rhombus4.setStroke(Color.BLUE);
      rhombus4.setStrokeWidth(10.0);

      // Group 객체 생성
      Group root = new Group(label1, label2, label3, label4, rhombus1, rhombus2, rhombus3, rhombus4);

      // Scene 객체 생성
      Scene scene = new Scene(root, 595, 310);

      // Stage 제목 설정
      stage.setTitle("Stroke Width");

      // Stage에 Scene 추가
      stage.setScene(scene);

      // Stage 내용 표시
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

코드 설명

예제 코드의 핵심 동작은 다음과 같습니다.

1. 기본 상태: 첫 번째 마름모는 아무런 선 색상도 지정하지 않은 원본 도형입니다.
2. 선 색상만 지정: 두 번째 마름모는 setStroke(Color.BLUE)로 파란색 경계선을 적용했지만, 선 굵기를 따로 지정하지 않아 기본값 1.0이 사용됩니다.
3. 굵기 3 적용: 세 번째 마름모는 setStrokeWidth(3.0)을 호출해 경계선을 더 두껍게 표현했습니다.
4. 굵기 10 적용: 네 번째 마름모는 setStrokeWidth(10.0)을 적용해 경계선이 매우 굵게 렌더링되는 것을 확인할 수 있습니다.

실행 결과

프로그램을 실행하면 아래와 같이 선 굵기에 따라 경계선의 두께가 달라지는 것을 한눈에 비교할 수 있습니다.

JavaFX 2D 도형의 선 굵기(Stroke Width) 속성 완벽 정리