สำหรับอ็อบเจ็กต์ 2 มิติทั้งหมด คุณสามารถกำหนดคุณสมบัติต่างๆ ได้ดังนี้:
- Stroke Type (ประเภทขอบ) - ระบุประเภทของเส้นขอบของรูปทรง กำหนดได้ด้วยเมธอด setStrokeType() ของคลาส Shape
JavaFX รองรับ 3 ประเภท: StrokeType.INSIDE, StrokeType.OUTSIDE, StrokeType.CENTERED - Stroke Width (ความกว้างขอบ) - ระบุความกว้างของเส้นขอบ กำหนดได้ด้วยเมธอด setStrokeWidth() ของคลาส Shape
- Fill (การเติมสี) - ระบุสีที่ใช้เติมพื้นที่ภายในรูปทรง กำหนดได้ด้วยเมธอด setFill() ของคลาส Shape
- Stroke (สีขอบ) - ระบุสีของเส้นขอบ กำหนดได้ด้วยเมธอด setStroke() ของคลาส javafx.scene.shape.Shape
- Stroke Line Cap (ปลายเส้น) - ระบุสไตล์ปลายเส้น กำหนดได้ด้วยเมธอด setStrokeLineCap() ของคลาส javafx.scene.shape.Shape
รองรับ 3 แบบ: BUTT, ROUND, SQUARE - Stroke Line Join (จุดต่อเส้น) - ในรูปทรงที่เกิดจากการต่อเส้นหลายเส้น ระบุรูปทรงของจุดต่อ กำหนดได้ด้วยเมธอด setStrokeLineJoin()
รองรับ 3 แบบ: BEVEL, MITER, ROUND - Stroke Miter Limit (ขีดจำกัด Miter) - ระบุขีดจำกัดสำหรับ stroke line join แบบ MITER กำหนดได้ด้วยเมธอด setStrokeMiterLimit() ของคลาส javafx.scene.shape.Shape
รับค่า double หากค่าน้อยกว่า 1.0 จะถือเป็น 1.0 - Smooth (ความเรียบ) - ระบุว่าใช้ antialiasing hints หรือไม่ กำหนดได้ด้วยเมธอด setSmooth() ของคลาส javafx.scene.shape.Shape
- Stroke Dash Offset (ออฟเซตเส้นประ) - หากใช้รูปแบบเส้นประ ระบุตำแหน่งเริ่มต้นของรูปแบบเส้นประ
ตัวอย่างโค้ด
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeLineCap;
import javafx.scene.shape.StrokeLineJoin;
import javafx.scene.shape.StrokeType;
public class ShapeProperties extends Application {
@Override
public void start(Stage stage) {
// วาดสี่เหลี่ยมผืนผ้า
Rectangle rect = new Rectangle(100.0, 75.0, 400.0, 150.0);
// คุณสมบัติรูปทรง 2D
rect.setStrokeWidth(25.0);
rect.setStrokeType(StrokeType.OUTSIDE);
rect.setStroke(Color.BLUE);
rect.setStrokeMiterLimit(8.0);
rect.setStrokeLineCap(StrokeLineCap.ROUND);
rect.setStrokeLineJoin(StrokeLineJoin.MITER);
rect.setSmooth(false);
// เตรียม Stage
Group root = new Group(rect);
Scene scene = new Scene(root, 600, 300);
stage.setTitle("ตัวอย่างคุณสมบัติรูปทรง");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ผลลัพธ์
