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

JavaFX 2D 도형의 Fill(채우기) 속성 완벽 정리


fill 속성은 도형(shape)의 내부 영역을 채울 색상을 지정하는 속성입니다. javafx.scene.shape.Shape 클래스가 제공하는 fill() 메서드를 사용하면 특정 도형을 원하는 색상으로 자유롭게 채울 수 있습니다.

기본값을 살펴보면, 대부분의 도형은 fill 속성의 기본값이 Color.BLACK(검정색)으로 설정되어 있습니다. 반면 Line, Path, Polyline처럼 닫힌 내부 면적이 없는 도형은 기본값이 null로 지정되어 있어 어떤 색상으로도 채워지지 않습니다.

참고로 Line 객체에 fill() 메서드로 색상을 지정하더라도 화면에는 변화가 나타나지 않습니다. 선은 내부 공간이 없기 때문에 실제 표시되는 색상은 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 FillExample extends Application {
   public void start(Stage stage) {
      Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);
      Text label1 = new Text("Fill: Default");
      label1.setFont(font);
      label1.setX(260.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("Filling Line");
      label2.setFont(font);
      label2.setX(60.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.setFill(Color.DARKBLUE);
      Text label3 = new Text("Fill: Blue");
      label3.setFont(font);
      label3.setX(270.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.setFill(Color.BLUE);
      Text label4 = new Text("Fill: Chocolate");
      label4.setFont(font);
      label4.setX(440.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.setFill(Color.CHOCOLATE);
      // Group 객체 생성
      Group root = new Group(label1, label2, label3, label4, rhombus1, line, rhombus3, rhombus4);
      // Scene 객체 생성
      Scene scene = new Scene(root, 595, 310);
      // Stage에 제목 설정
      stage.setTitle("Fill Example");
      // Stage에 Scene 추가
      stage.setScene(scene);
      // Stage 내용 표시
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

코드 설명

  • rhombus1: fill() 메서드를 호출하지 않았으므로 Polygon의 기본 색상인 검정색(BLACK)으로 채워집니다.
  • line: 선에 DARKBLUE 색상으로 fill을 설정했지만, 선은 내부 면적이 없어 실제 화면 표시에는 영향을 주지 않습니다.
  • rhombus3: fill(Color.BLUE)을 호출하여 파란색 마름모를 그립니다.
  • rhombus4: fill(Color.CHOCOLATE)을 호출하여 초콜릿색 마름모를 그립니다.

실행 결과

JavaFX 2D 도형의 Fill(채우기) 속성 완벽 정리