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

JavaFX 2D 도형의 Stroke(테두리) 속성 완벽 정리


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);
   }
}

실행 결과

JavaFX 2D 도형의 Stroke(테두리) 속성 완벽 정리

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