खोज…


वाक्य - विन्यास

  • फ़्रेम.सेटलेयआउट (नया ग्रिडबागलेयआउट ()); // फ्रेम के लिए GridBagLayout सेट करें
  • pane.setLayout (नया GridBagLayout ()); // पैनल के लिए GridBagLayout सेट करें
  • JPanel pane = new JPanel (new GridBagLayout ()); // पैनल के लिए GridBagLayout सेट करें
  • GridBagConstraints c = नया GridBagConstraints () // एक GridBagConstraint प्रारंभ करें

GridBagLayout कैसे काम करता है?

जब भी आप अपने घटकों को एक दूसरे के बगल में प्रदर्शित नहीं करना चाहते हैं तो लेआउट का उपयोग किया जाता है। GridBagLayout एक उपयोगी है, क्योंकि यह आपकी विंडो को पंक्तियों और स्तंभों में विभाजित करता है, और आप घटकों को पुट करने के लिए कौन सी पंक्ति और स्तंभ तय करते हैं, साथ ही घटक कितनी बड़ी पंक्तियों और कॉलम्स हैं।

आइए इस विंडो को एक उदाहरण के रूप में लेते हैं। लेआउट दिखाने के लिए ग्रिड लाइनों को चिह्नित किया गया है।

GridBagLayout कल्पना

यहाँ, मैंने 6 घटकों का निर्माण किया है, एक ग्रिडबगलैटआउट का उपयोग करके।

अंग स्थान आकार
JLabel : "माई अमेज़िंग स्विंग एप्लीकेशन" 0, 0 3, 1
JButton : "बटन ए" 0, 1 1, 1
JButton : "बटन बी" 1, 1 1, 1
JButton : "बटन सी" 2, 1 1, 1
JSlider 0, 2 3, 1
JScrollBar 0, 3 3, 1

ध्यान दें कि स्थिति 0, 0 शीर्ष बाएँ पर है: x (स्तंभ) मान बाएँ से दाएँ बढ़ते हैं, y (पंक्ति) मान ऊपर से नीचे की ओर बढ़ते हैं।

GridBagLayout में घटकों को GridBagLayout शुरू करने के लिए, पहले अपने JFrame या सामग्री फलक का लेआउट सेट करें।

frame.setLayout(new GridBagLayout());
//OR
pane.setLayout(new GridBagLayout());
//OR
JPanel pane = new JPanel(new GridBagLayout()); //Add the layout when creating your content pane

ध्यान दें कि आप कभी भी ग्रिड के आकार को परिभाषित नहीं करते हैं। यह स्वचालित रूप से किया जाता है क्योंकि आप अपने घटकों को जोड़ते हैं।

बाद में, आपको एक GridBagConstraints ऑब्जेक्ट बनाने की आवश्यकता होगी।

GridBagConstraints c = new GridBagConstraints();

यह सुनिश्चित करने के लिए कि आपके घटक खिड़की के आकार को भरते हैं, आप सभी इटैलिकसेट का वजन 1 पर सेट करना चाह सकते हैं। वजन का उपयोग यह निर्धारित करने के लिए किया जाता है कि कॉलम और पंक्तियों के बीच स्थान कैसे वितरित करें।

c.weightx = 1;
c.weighty = 1;

एक और चीज जो आप करना चाहते हैं, यह सुनिश्चित कर लें कि घटक उतने ही क्षैतिज स्थान ले सकते हैं जितना वे कर सकते हैं।

c.fill = GridBagConstraints.HORIZONTAL;

आप चाहें तो अन्य भरण विकल्प भी निर्धारित कर सकते हैं।

GridBagConstraints.NONE //Don't fill components at all
GridBagConstraints.HORIZONTAL //Fill components horizontally
GridBagConstraints.VERTICAL //Fill components vertically
GridBagConstraints.BOTH //Fill components horizontally and vertically

घटक बनाते समय, आप यह सेट करना चाहेंगे कि ग्रिड पर यह कहाँ जाना चाहिए, और इसे कितनी ग्रिड टाइलों का उपयोग करना चाहिए। उदाहरण के लिए, 2 कॉलम में तीसरी पंक्ति में एक बटन लगाने के लिए, और 5 x 5 ग्रिड स्पेस लें, निम्न कार्य करें। ध्यान रखें कि ग्रिड 0, 0 से शुरू होता है, 1, 1

JButton button = new JButton("Fancy Button!");
c.gridx = 2;
c.gridy = 1;
c.gridwidth = 5;
c.gridheight = 5;
pane.add(buttonA, c);

अपनी विंडो में घटकों को जोड़ते समय, एक पैरामीटर के रूप में बाधाओं को पारित करना याद रखें। यह ऊपर कोड उदाहरण में अंतिम पंक्ति में देखा जा सकता है।

आप प्रत्येक घटक के लिए एक ही GridBagConstraints पुन: उपयोग कर सकते हैं - एक घटक को जोड़ने के बाद इसे बदलना पहले जोड़े गए घटक को नहीं बदलता है।

उदाहरण

इस अनुभाग के प्रारंभ में उदाहरण के लिए कोड है।

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(new GridBagLayout()); //Create a pane to house all content, and give it a GridBagLayout
frame.setContentPane(pane);

GridBagConstraints c = new GridBagConstraints();
c.weightx = 1;
c.weighty = 1;
c.fill = GridBagConstraints.HORIZONTAL;

JLabel headerLabel = new JLabel("My Amazing Swing Application");
c.gridx = 0;
c.gridwidth = 3;
c.gridy = 0;
pane.add(headerLabel, c);

JButton buttonA = new JButton("Button A");
c.gridx = 0;
c.gridwidth = 1;
c.gridy = 1;
pane.add(buttonA, c);

JButton buttonB = new JButton("Button B");
c.gridx = 1;
c.gridwidth = 1;
c.gridy = 1;
pane.add(buttonB, c);

JButton buttonC = new JButton("Button C");
c.gridx = 2;
c.gridwidth = 1;
c.gridy = 1;
pane.add(buttonC, c);

JSlider slider = new JSlider(0, 100);
c.gridx = 0;
c.gridwidth = 3;
c.gridy = 2;
pane.add(slider, c);

JScrollBar scrollBar = new JScrollBar(JScrollBar.HORIZONTAL, 20, 20, 0, 100);
c.gridx = 0;
c.gridwidth = 3;
c.gridy = 3;
pane.add(scrollBar, c);

frame.setVisible(true); //Show the window

उदाहरण GridBagLayout



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow