JavaFX - लेआउट पैन (कंटेनर)
एक दृश्य में सभी आवश्यक नोड्स के निर्माण के बाद, हम आम तौर पर उन्हें क्रम में व्यवस्थित करेंगे।
कंटेनर के भीतर घटकों की इस व्यवस्था को कंटेनर का लेआउट कहा जाता है। हम यह भी कह सकते हैं कि हमने एक लेआउट का पालन किया क्योंकि इसमें कंटेनर के भीतर एक विशेष स्थिति में सभी घटकों को रखना शामिल है।
JavaFX कई पूर्वनिर्धारित लेआउट प्रदान करता है जैसे कि HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Panel, आदि।
उपर्युक्त लेआउट में से प्रत्येक को एक वर्ग द्वारा दर्शाया गया है और ये सभी वर्ग पैकेज के हैं javafx.layout। नाम का वर्गPane JavaFX में सभी लेआउट का आधार वर्ग है।
एक लेआउट बनाना
एक लेआउट बनाने के लिए, आपको निम्न करना होगा -
- नोड बनाएँ।
- आवश्यक लेआउट के संबंधित वर्ग को त्वरित करें।
- लेआउट के गुणों को सेट करें।
- लेआउट में सभी बनाए गए नोड्स जोड़ें।
नोड्स बनाना
सबसे पहले, अपनी संबंधित कक्षाओं को तत्काल करके JavaFX एप्लिकेशन के आवश्यक नोड बनाएं।
उदाहरण के लिए, यदि आप एक पाठ क्षेत्र और दो बटन अर्थात्, एक HBox लेआउट में खेलना और रोकना चाहते हैं - तो आपको शुरू में निम्नलिखित कोड ब्लॉक में दिखाए गए अनुसार उन नोड्स बनाने होंगे -
//Creating a text field
TextField textField = new TextField();
//Creating the play button
Button playButton = new Button("Play");
//Creating the stop button
Button stopButton = new Button("stop");
रिस्पांसिबल क्लास को तत्काल करना
नोड्स बनाने के बाद (और उन पर सभी कार्यों को पूरा करने), आवश्यक लेआउट के वर्ग को तुरंत हटा दें।
उदाहरण के लिए, यदि आप एक Hbox लेआउट बनाना चाहते हैं, तो आपको निम्नानुसार इस वर्ग को तुरंत बनाना होगा।
HBox hbox = new HBox();
लेआउट के गुण सेट करना
कक्षा को तुरंत करने के बाद, आपको उनके संबंधित सेटर विधियों का उपयोग करके लेआउट के गुणों को निर्धारित करना होगा।
उदाहरण के लिए - यदि आप HBox लेआउट में बनाए गए नोड्स के बीच जगह सेट करना चाहते हैं, तो आपको स्पेसिंग नाम की प्रॉपर्टी को मान सेट करना होगा। यह सेटर विधि का उपयोग करके किया जा सकता हैsetSpacing() जैसा कि नीचे दिखाया गया है -
hbox.setSpacing(10);
समूह में आकार वस्तु जोड़ना
अंत में, आपको आकृति के ऑब्जेक्ट को निर्माता के पैरामीटर के रूप में पास करके समूह में जोड़ना होगा जैसा कि नीचे दिखाया गया है।
//Creating a Group object
Group root = new Group(line);
लेआउट पैन
जावाएफएक्स द्वारा प्रदान किए गए विभिन्न लेआउट पैन (कक्षाएं) निम्नलिखित हैं। ये कक्षाएं पैकेज में मौजूद हैंjavafx.scene.layout।
S.No | आकार और विवरण |
---|---|
1 | HBox HBox लेआउट एक एकल क्षैतिज पंक्ति में हमारे आवेदन में सभी नोड्स की व्यवस्था करता है। नाम का वर्ग HBox पैकेज का javafx.scene.layout पाठ क्षैतिज बॉक्स लेआउट का प्रतिनिधित्व करता है। |
2 | VBox VBox लेआउट एक एकल ऊर्ध्वाधर कॉलम में हमारे आवेदन में सभी नोड्स की व्यवस्था करता है। नाम का वर्ग VBox पैकेज का javafx.scene.layout पाठ वर्टिकल बॉक्स लेआउट का प्रतिनिधित्व करता है। |
3 | BorderPane बॉर्डर पेन लेआउट हमारे एप्लिकेशन में टॉप, लेफ्ट, राइट, बॉटम और सेंटर पोजिशन में नोड्स की व्यवस्था करता है। नाम का वर्ग BorderPane पैकेज का javafx.scene.layout सीमा फलक लेआउट का प्रतिनिधित्व करता है। |
4 | StackPane स्टैक पैन लेआउट हमारे एप्लिकेशन में नोड्स को एक स्टैक की तरह दूसरे के ऊपर व्यवस्थित करता है। पहले जोड़ा गया नोड स्टैक के निचले भाग में रखा गया है और अगला नोड उसके ऊपर रखा गया है। नाम का वर्ग StackPane पैकेज का javafx.scene.layout स्टैक पेन लेआउट का प्रतिनिधित्व करता है। |
5 | TextFlow पाठ प्रवाह लेआउट एक प्रवाह में कई पाठ नोड्स की व्यवस्था करता है। नाम का वर्ग TextFlow पैकेज का javafx.scene.layout पाठ प्रवाह लेआउट का प्रतिनिधित्व करता है। |
6 | AnchorPane लंगर फलक लेआउट फलक से एक विशेष दूरी पर हमारे आवेदन में नोड्स को लंगर डालता है। नाम का वर्ग AnchorPane पैकेज का javafx.scene.layout लंगर फलक लेआउट का प्रतिनिधित्व करता है। |
7 | TilePane टाइल फलक लेआउट हमारे अनुप्रयोग के सभी नोड्स को समान रूप से टाइल के रूप में जोड़ता है। नाम का वर्ग TilePane पैकेज का javafx.scene.layout टाइलपैन लेआउट का प्रतिनिधित्व करता है। |
8 | GridPane ग्रिड फलक लेआउट हमारे आवेदन में पंक्तियों और स्तंभों के ग्रिड के रूप में नोड्स की व्यवस्था करता है। JavaFX का उपयोग करते हुए फॉर्म बनाते समय यह लेआउट काम आता है। नाम का वर्ग GridPane पैकेज का javafx.scene.layout ग्रिडपेन लेआउट का प्रतिनिधित्व करता है। |
9 | FlowPane प्रवाह फलक लेआउट एक प्रवाह में सभी नोड्स को लपेटता है। एक क्षैतिज प्रवाह फलक फलक के तत्वों को अपनी ऊंचाई पर लपेटता है, जबकि एक ऊर्ध्वाधर प्रवाह फलक तत्वों को इसकी चौड़ाई पर लपेटता है। नाम का वर्ग FlowPane पैकेज का javafx.scene.layout फ़्लो पेन लेआउट का प्रतिनिधित्व करता है। |