JavaFX에서 stroke 속성은 도형의 경계선, 즉 테두리의 색상을 지정하는 속성입니다. javafx.scene.shape.Shape 클래스가 제공하는 setStroke() 메서드를 사용하면 원하는 색상으로 도형의 테두리를 자유롭게 꾸밀 수 있습니다.
이 메서드는 Color 타입의 값을 매개변수로 받으며, 전달된 색상이 해당 도형의 테두리에 그대로 적용됩니다.
속성별 기본값
도형 종류에 따라 stroke 속성의 기본값은 다릅니다.
- Line, Path, Polyline: 기본값이
null로 설정되어 있어 별도로 지정하지 않으면 테두리가 표시되지 않습니다. - 그 외 모든 도형(Rectangle, Circle, Polygon 등): 기본값은
Color.BLACK입니다.
예제 코드
아래 예제는 선(Line)과 마름모(Polygon)에 서로 다른 stroke 색상과 두께를 적용한 모습을 보여줍니다.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
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 StrokeExample 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 for a line");
label2.setFont(font);
label2.setX(50.0);
label2.setY(275.0);
// 선(Line) 생성
Line line = new Line();
line.setStartX(50.0);
line.setStartY(200.0);
line.setEndX(150.0);
line.setEndY(200.0);
line.setStrokeWidth(10.0);
line.setStroke(Color.DARKBLUE);
Text label3 = new Text("Stroke: Blue");
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(7.0);
Text label4 = new Text("Stroke: Red");
label4.setFont(font);
label4.setX(450.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.RED);
rhombus4.setStrokeWidth(7.0);
// Group 객체 생성
Group root = new Group(label1, label2, label3, label4, rhombus1, line, rhombus3, rhombus4);
// Scene 객체 생성
Scene scene = new Scene(root, 595, 310);
// Stage 제목 설정
stage.setTitle("Stroke Example");
// Stage에 Scene 추가
stage.setScene(scene);
// Stage 화면에 표시
stage.show();
}
public static void main(String args[]){
launch(args);
}
}실행 결과

위 코드를 실행하면 왼쪽에는 짙은 파란색(DARKBLUE) 테두리를 가진 두꺼운 선이, 오른쪽에는 각각 파란색과 빨간색 테두리가 적용된 두 개의 마름모가 화면에 나타납니다. 이처럼 setStroke()와 setStrokeWidth() 메서드를 함께 사용하면 도형의 테두리 색상과 굵기를 손쉽게 조절할 수 있습니다.