The javafx.scene.shape package มีคลาสซึ่งคุณสามารถวาดรูปร่าง 2D ต่างๆ ได้ แต่สิ่งเหล่านี้เป็นเพียงรูปร่างดั้งเดิม เช่น เส้น วงกลม รูปหลายเหลี่ยม และวงรี เป็นต้น... ดังนั้น หากคุณต้องการวาดรูปร่างที่กำหนดเองที่ซับซ้อน คุณต้องใช้คลาส Pathพี>
คลาสเส้นทาง
คลาส Path แสดงถึงโครงร่างเรขาคณิตของรูปร่างโดยใช้คลาสนี้ คุณสามารถวาดเส้นทางที่กำหนดเองได้
ในการวาดพาธแบบกำหนดเอง JavaFX ได้จัดเตรียมเอลิเมนต์พาธต่างๆ และทั้งหมดนี้มีให้เป็นคลาสใน javafx.scene.shape แพกเกจ
-
LineTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง line . ช่วยให้คุณวาดเส้นตรงจากพิกัดปัจจุบันไปยังพิกัด (ใหม่) ที่ระบุ
-
HlineTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง เส้นแนวนอน . ช่วยให้คุณวาดเส้นแนวนอนจากพิกัดปัจจุบันไปยังพิกัด (ใหม่) ที่ระบุ
-
VLineTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง เส้นแนวตั้ง . ช่วยให้คุณวาดเส้นแนวตั้งจากพิกัดปัจจุบันไปยังพิกัด (ใหม่) ที่ระบุ
-
QuadCurveTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง เส้นโค้งกำลังสอง . ช่วยให้คุณวาดเส้นโค้งกำลังสองจากพิกัดปัจจุบันไปยังพิกัดที่กำหนด (ใหม่)
-
CubicCurveTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง เส้นโค้งลูกบาศก์ . ช่วยให้คุณวาดเส้นโค้งลูกบาศก์จากพิกัดปัจจุบันไปยังพิกัด (ใหม่) ที่ระบุ
-
ArcTo − นี่คือคลาสที่แสดงถึงองค์ประกอบเส้นทาง ส่วนโค้ง . ช่วยให้คุณวาดส่วนโค้งจากพิกัดปัจจุบันไปยังพิกัด (ใหม่) ที่ระบุ
-
ย้ายไปที่ − เมื่อใช้คลาสนี้ คุณจะย้ายเส้นทางจากพิกัดปัจจุบันไปยังพิกัดใหม่ได้
การสร้างเส้นทางโดยใช้องค์ประกอบเส้นทาง
คลาส Path มีรายการที่สังเกตได้ซึ่งมีองค์ประกอบพาธของพาธปัจจุบัน ดังนั้นการวาดเส้นทาง -
-
สร้างอินสแตนซ์ของคลาส PathElement ที่จำเป็น
-
ตั้งค่าคุณสมบัติของแต่ละพาธโดยใช้เมธอด setter หรือส่งผ่านอาร์กิวเมนต์ไปยังคอนสตรัคเตอร์
-
ยกตัวอย่างคลาส Path
-
รับวัตถุรายการที่สังเกตได้ของเส้นทางที่สร้างขึ้นด้านบนโดยใช้ getElements() วิธีการ
-
เพิ่มออบเจ็กต์องค์ประกอบพาธทั้งหมดไปยังรายการที่สังเกตได้ตามลำดับที่ต้องการโดยใช้เมธอด add() หรือ addAll()
-
สุดท้าย เพิ่มเส้นทางไปยังวัตถุกลุ่ม
หมายเหตุ − คุณยังสามารถส่งองค์ประกอบพาธไปยังคอนสตรัคเตอร์ของคลาส Path ได้อีกด้วย
ตัวอย่าง
ตัวอย่าง JavaFX ต่อไปนี้สร้างเส้นทางโดยใช้องค์ประกอบเส้นทาง LineTo -
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.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; public class PathElementsExample extends Application { public void start(Stage stage) { //Drawing the shape MoveTo moveTo = new MoveTo(208, 71); LineTo line1 = new LineTo(421, 161); LineTo line2 = new LineTo(226,232); LineTo line3 = new LineTo(332,52); LineTo line4 = new LineTo(369, 250); LineTo line5 = new LineTo(208, 71); //Creating a Path Path path = new Path(moveTo, line1, line2, line3, line4, line5); path.setFill(Color.DARKCYAN); path.setStrokeWidth(8.0); path.setStroke(Color.DARKSLATEGREY); //Preparing the Stage object Group root = new Group(path); Scene scene = new Scene(root, 595, 300, Color.BEIGE); stage.setTitle("Drawing an arc through a path"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
ผลลัพธ์