JavaFX - สถาปัตยกรรม
JavaFX มี API ที่สมบูรณ์พร้อมชุดคลาสและอินเทอร์เฟซที่หลากหลายเพื่อสร้างแอปพลิเคชัน GUI ที่มีกราฟิกที่สมบูรณ์ แพ็คเกจที่สำคัญของ API นี้ ได้แก่ -
javafx.animation - มีคลาสเพื่อเพิ่มแอนิเมชั่นตามการเปลี่ยนเช่นเติมจางหมุนปรับขนาดและแปลไปยังโหนด JavaFX
javafx.application - ประกอบด้วยชุดของคลาสที่รับผิดชอบวงจรชีวิตของแอปพลิเคชัน JavaFX
javafx.css - มีคลาสเพื่อเพิ่มสไตล์คล้าย CSS ให้กับแอปพลิเคชัน JavaFX GUI
javafx.event - มีคลาสและอินเทอร์เฟซเพื่อส่งมอบและจัดการกับเหตุการณ์ JavaFX
javafx.geometry - มีคลาสเพื่อกำหนดวัตถุ 2 มิติและดำเนินการกับพวกมัน
javafx.stage - แพ็คเกจนี้มีคลาสคอนเทนเนอร์ระดับบนสุดสำหรับแอปพลิเคชัน JavaFX
javafx.scene- แพ็คเกจนี้มีคลาสและอินเทอร์เฟซเพื่อรองรับกราฟฉาก นอกจากนี้ยังมีแพ็กเกจย่อยเช่นแคนวาสแผนภูมิการควบคุมเอฟเฟกต์รูปภาพอินพุตเลย์เอาต์สื่อสีรูปร่างข้อความการแปลงเว็บ ฯลฯ มีส่วนประกอบหลายอย่างที่รองรับ API ที่หลากหลายของ JavaFX .
ภาพประกอบต่อไปนี้แสดงสถาปัตยกรรมของ JavaFX API คุณสามารถดูส่วนประกอบที่รองรับ JavaFX API ได้ที่นี่
กราฟฉาก
ใน JavaFX แอปพลิเคชัน GUI ถูกเข้ารหัสโดยใช้กราฟฉาก กราฟฉากเป็นจุดเริ่มต้นของการสร้างแอปพลิเคชัน GUI มันมีพื้นฐานของแอปพลิเคชัน (GUI) ที่เรียกว่าโหนด
โหนดเป็นวัตถุภาพ / กราฟิกและอาจรวมถึง -
Geometrical (Graphical) objects - (2D และ 3D) เช่นวงกลมสี่เหลี่ยมผืนผ้ารูปหลายเหลี่ยมเป็นต้น
UI controls - เช่นปุ่ม, ช่องทำเครื่องหมาย, ช่องตัวเลือก, พื้นที่ข้อความ ฯลฯ
Containers - (บานหน้าต่างเลย์เอาต์) เช่น Border Pane, Grid Pane, Flow Pane เป็นต้น
Media elements - เช่นวัตถุเสียงวิดีโอและรูปภาพ
โดยทั่วไปคอลเลกชันของโหนดจะสร้างกราฟฉาก โหนดทั้งหมดนี้จัดเรียงตามลำดับชั้นดังที่แสดงด้านล่าง
แต่ละโหนดในกราฟฉากมีพาเรนต์เดียวและโหนดที่ไม่มีพาเรนต์ใด ๆ เรียกว่า root node.
ในทำนองเดียวกันทุกโหนดมีชายน์ตั้งแต่หนึ่งลูกขึ้นไปและโหนดที่ไม่มีลูกจะถูกเรียกว่า leaf node; โหนดที่มีลูกเรียกว่า abranch node.
คุณสามารถเพิ่มอินสแตนซ์โหนดลงในกราฟฉากได้เพียงครั้งเดียว โหนดของกราฟฉากสามารถมี Effects, Opacity, Transforms, Event Handlers, Event Handlers, Application Specific States
ปริซึม
ปริซึมคือ high performance hardware–accelerated graphical pipelineที่ใช้ในการแสดงผลกราฟิกใน JavaFX สามารถแสดงผลได้ทั้งกราฟิก 2 มิติและ 3 มิติ
ในการแสดงผลกราฟิกปริซึมใช้ -
- DirectX 9 บน Windows XP และ Vista
- DirectX 11 บน Windows 7
- OpenGL บน Mac และ Linux ระบบฝังตัว
ในกรณีที่การสนับสนุนฮาร์ดแวร์สำหรับกราฟิกบนระบบไม่เพียงพอ Prism จะใช้เส้นทางการแสดงผลซอฟต์แวร์เพื่อประมวลผลกราฟิก
เมื่อใช้กับการ์ดแสดงผลหรือ GPU ที่รองรับจะให้กราฟิกที่ราบรื่นยิ่งขึ้น ในกรณีที่ระบบไม่รองรับกราฟิกการ์ดดังนั้นปริซึมจะตั้งค่าเริ่มต้นเป็นสแต็กการเรนเดอร์ซอฟต์แวร์ (อย่างใดอย่างหนึ่งจากสองข้อด้านบน)
GWT (ชุดเครื่องมือกระจกหน้าต่าง)
ตามชื่อที่แนะนำ GWT ให้บริการจัดการ Windows, Timers, Surfaces และ Event Queues GWT เชื่อมต่อแพลตฟอร์ม JavaFX กับระบบปฏิบัติการเนทีฟ
Quantum Toolkit
มันเป็นนามธรรมเหนือส่วนประกอบระดับต่ำของ Prism, Glass, Media Engine และ Web Engine มันเชื่อมโยง Prism และ GWT เข้าด้วยกันและทำให้สามารถใช้งานได้กับ JavaFX
WebView
เมื่อใช้ JavaFX คุณสามารถฝังเนื้อหา HTML ลงในกราฟฉากได้ WebView เป็นส่วนประกอบของ JavaFX ซึ่งใช้ในการประมวลผลเนื้อหานี้ จะใช้เทคโนโลยีที่เรียกว่าWeb Kitซึ่งเป็นเอ็นจิ้นเว็บเบราว์เซอร์โอเพนซอร์สภายใน ส่วนประกอบนี้รองรับเทคโนโลยีเว็บต่างๆเช่น HTML5, CSS, JavaScript, DOM และ SVG
เมื่อใช้ WebView คุณสามารถ -
- แสดงเนื้อหา HTML จาก URL ภายในหรือจากระยะไกล
- ประวัติการสนับสนุนและให้การนำทางย้อนกลับและไปข้างหน้า
- โหลดเนื้อหาซ้ำ
- ใช้เอฟเฟกต์กับส่วนประกอบของเว็บ
- แก้ไขเนื้อหา HTML
- ดำเนินการคำสั่ง JavaScript
- จัดการเหตุการณ์
โดยทั่วไปเมื่อใช้ WebView คุณสามารถควบคุมเนื้อหาเว็บจาก Java
Media Engine
JavaFX media engine ขึ้นอยู่กับเครื่องมือโอเพ่นซอร์สที่เรียกว่าไฟล์ Streamer. เครื่องมือสื่อนี้รองรับการเล่นเนื้อหาวิดีโอและเสียง
JavaFX media engine ให้การสนับสนุนเสียงสำหรับรูปแบบไฟล์ต่อไปนี้ -
Audio |
|
---|---|
Video |
|
แพคเกจ javafx.scene.mediaมีคลาสและอินเทอร์เฟซเพื่อจัดเตรียมฟังก์ชันสื่อใน JavaFX มีให้ในรูปแบบของส่วนประกอบสามส่วน ได้แก่ -
Media Object - นี่แสดงถึงไฟล์มีเดีย
Media Player - เพื่อเล่นเนื้อหาสื่อ
Media View - เพื่อแสดงสื่อ