선 굵기(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)을 적용해 경계선이 매우 굵게 렌더링되는 것을 확인할 수 있습니다.
실행 결과
프로그램을 실행하면 아래와 같이 선 굵기에 따라 경계선의 두께가 달라지는 것을 한눈에 비교할 수 있습니다.
