JavaFX - आर्किटेक्चर

JavaFX अमीर ग्राफिक्स के साथ GUI एप्लिकेशन बनाने के लिए कक्षाओं और रिच इंटरफेस के एक समृद्ध सेट के साथ एक पूर्ण एपीआई प्रदान करता है। इस एपीआई के महत्वपूर्ण पैकेज हैं -

  • javafx.animation - संक्रमण आधारित एनिमेशन जैसे कि भरने, फीका, घुमाने, पैमाने और अनुवाद को जावाएफ़एक्स नोड्स में जोड़ने के लिए कक्षाएं शामिल हैं।

  • javafx.application - जावाएफएक्स एप्लिकेशन जीवन चक्र के लिए जिम्मेदार कक्षाओं का एक सेट शामिल है।

  • javafx.css - JavaFX GUI अनुप्रयोगों के लिए CSS- जैसी स्टाइल को जोड़ने के लिए कक्षाएं शामिल हैं।

  • javafx.event - जावाएफएक्स ईवेंट्स को वितरित करने और संभालने के लिए कक्षाएं और इंटरफेस शामिल हैं।

  • javafx.geometry - 2 डी वस्तुओं को परिभाषित करने और उन पर संचालन करने के लिए कक्षाएं शामिल हैं।

  • javafx.stage - यह पैकेज JavaFX एप्लिकेशन के लिए शीर्ष स्तर के कंटेनर क्लासेस रखता है।

  • javafx.scene- यह पैकेज दृश्य ग्राफ का समर्थन करने के लिए कक्षाएं और इंटरफेस प्रदान करता है। इसके अलावा, यह उप-पैकेज भी प्रदान करता है जैसे कि कैनवास, चार्ट, नियंत्रण, प्रभाव, छवि, इनपुट, लेआउट, मीडिया, पेंट, आकृति, टेक्स्ट, ट्रांसफ़ॉर्म, वेब, आदि। कई घटक हैं जो JavaFX के इस समृद्ध एपीआई का समर्थन करते हैं। ।

निम्नलिखित उदाहरण जावाएफएक्स एपीआई की वास्तुकला को दर्शाता है। यहां आप उन घटकों को देख सकते हैं जो JavaFX API का समर्थन करते हैं।

दृश्य ग्राफ

JavaFX में, GUI एप्लिकेशन को एक सीन ग्राफ का उपयोग करके कोडित किया गया था। एक दृश्य ग्राफ जीयूआई अनुप्रयोग के निर्माण का प्रारंभिक बिंदु है। यह (GUI) एप्लिकेशन प्राइमिटिव को नोड्स के रूप में करार देता है।

एक नोड एक दृश्य / चित्रमय वस्तु है और इसमें शामिल हो सकते हैं -

  • Geometrical (Graphical) objects - (2 डी और 3 डी) जैसे सर्कल, आयत, बहुभुज, आदि।

  • UI controls - जैसे बटन, चेकबॉक्स, चॉइस बॉक्स, टेक्स्ट एरिया आदि।

  • Containers - (लेआउट पैन) जैसे बॉर्डर पेन, ग्रिड पेन, फ्लो पेन आदि।

  • Media elements - जैसे ऑडियो, वीडियो और इमेज ऑब्जेक्ट।

सामान्य तौर पर, नोड्स का संग्रह एक दृश्य ग्राफ बनाता है। इन सभी नोड्स को एक पदानुक्रमित क्रम में व्यवस्थित किया गया है जैसा कि नीचे दिखाया गया है।

दृश्य ग्राफ में प्रत्येक नोड में एक एकल माता-पिता होते हैं, और जिस नोड में कोई भी माता-पिता नहीं होते हैं, उसे के रूप में जाना जाता है root node

उसी तरह, हर नोड में एक या अधिक बच्चे होते हैं, और बच्चों के बिना नोड को कहा जाता है leaf node; बच्चों के साथ एक नोड को एक के रूप में कहा जाता हैbranch node

एक नोड उदाहरण केवल एक बार दृश्य ग्राफ में जोड़ा जा सकता है। एक दृश्य ग्राफ के नोड्स में इफेक्ट्स, ओपेसिटी, ट्रांसफॉर्म, इवेंट हैंडलर, इवेंट हैंडलर, एप्लिकेशन स्पेसिफिक स्टेट्स हो सकते हैं।

चश्मे

प्रिज्म एक है high performance hardware–accelerated graphical pipelineइसका उपयोग JavaFX में ग्राफिक्स रेंडर करने के लिए किया जाता है। यह 2-D और 3-D दोनों ग्राफिक्स को रेंडर कर सकता है।

ग्राफिक्स रेंडर करने के लिए, एक प्रिज्म उपयोग करता है -

  • विंडोज एक्सपी और विस्टा पर डायरेक्टएक्स 9।
  • विंडोज 7 पर डायरेक्टएक्स 11।
  • मैक और लिनक्स, एंबेडेड सिस्टम पर ओपनजीएल।

यदि सिस्टम पर ग्राफिक्स के लिए हार्डवेयर समर्थन पर्याप्त नहीं है, तो प्रिज्म ग्राफिक्स को प्रोसेस करने के लिए सॉफ्टवेयर रेंडर पथ का उपयोग करता है।

जब एक समर्थित ग्राफिक कार्ड या GPU के साथ प्रयोग किया जाता है, तो यह चिकनी ग्राफिक्स प्रदान करता है। बस अगर सिस्टम एक ग्राफिक कार्ड का समर्थन नहीं करता है, तो प्रिज्म सॉफ़्टवेयर रेंडरिंग स्टैक (दोनों में से किसी एक पर) को डिफॉल्ट करता है।

GWT (ग्लास घुमावदार टूलकिट)

जैसा कि नाम से पता चलता है, GWT विंडोज, टाइमर, सर्फेस और इवेंट क्यू को प्रबंधित करने के लिए सेवाएं प्रदान करता है। GWT जावाएफ़एक्स प्लेटफ़ॉर्म को नेटिव ऑपरेटिंग सिस्टम से जोड़ता है।

क्वांटम टूलकिट

यह प्रिज्म, ग्लास, मीडिया इंजन और वेब इंजन के निम्न-स्तरीय घटकों पर एक अमूर्तता है। यह प्रिज्म और GWT को एक साथ जोड़ता है और उन्हें JavaFX के लिए उपलब्ध कराता है।

वेब-दृश्य

JavaFX का उपयोग करके, आप HTML सामग्री को एक दृश्य ग्राफ में एम्बेड कर सकते हैं। WebView JavaFX का घटक है जिसका उपयोग इस सामग्री को संसाधित करने के लिए किया जाता है। इसमें टेक्नॉलॉजी नामक तकनीक का इस्तेमाल होता हैWeb Kit, जो एक आंतरिक ओपन-सोर्स वेब ब्राउज़र इंजन है। यह घटक HTML5, CSS, JavaScript, DOM और SVG जैसी विभिन्न वेब तकनीकों का समर्थन करता है।

WebView का उपयोग करके, आप कर सकते हैं -

  • स्थानीय या दूरस्थ URL से HTML सामग्री रेंडर करें।
  • इतिहास का समर्थन करें और बैकवर्ड और फॉरवर्ड नेविगेशन प्रदान करें।
  • सामग्री को पुनः लोड करें।
  • वेब घटक पर प्रभाव लागू करें।
  • HTML सामग्री संपादित करें।
  • जावास्क्रिप्ट कमांड निष्पादित करें।
  • घटनाओं को संभालें।

सामान्य तौर पर, WebView का उपयोग करके, आप जावा से वेब सामग्री को नियंत्रित कर सकते हैं।

मीडिया इंजन

JavaFX media engine एक ओपन-सोर्स इंजन पर आधारित है जिसे a के रूप में जाना जाता है Streamer। यह मीडिया इंजन वीडियो और ऑडियो सामग्री के प्लेबैक का समर्थन करता है।

JavaFX मीडिया इंजन निम्नलिखित फ़ाइल स्वरूपों के लिए ऑडियो के लिए समर्थन प्रदान करता है -

Audio
  • MP3
  • WAV
  • AIFF
Video
  • FLV

पैकेज javafx.scene.mediaJavaFX में मीडिया कार्यक्षमता प्रदान करने के लिए कक्षाएं और इंटरफेस शामिल हैं। यह तीन घटकों के रूप में प्रदान किया जाता है, जो हैं -

  • Media Object - यह एक मीडिया फ़ाइल का प्रतिनिधित्व करता है

  • Media Player - मीडिया सामग्री खेलने के लिए।

  • Media View - मीडिया प्रदर्शित करने के लिए।