2012-07-26 19 views
5

पूर्वी लेआउट में 2+ बटन जोड़ते समय, केवल 1 शो। मैं एक लेआउट का परीक्षण करने की कोशिश कर रहा हूं जो टैब्ड पैन का उपयोग करता है। किसी कारण से जब मैं पूर्वी क्षेत्र में कई बटन जोड़ने की कोशिश करता हूं, तो यह केवल 1 बटन दिखाता है। यह ऐसा होता है कि प्रदर्शित बटन पिछले क्षेत्र में जोड़ा गया अंतिम है, बाकी को नजरअंदाज कर दिया जाता है। मैं सोच रहा हूं कि वे आखिरी बटन के नीचे बस छिपे हुए हैं।पूर्व लेआउट में 2+ बटन जोड़ते समय, केवल 1 दिखाता है

public void createPage1() 
    { 
     { 
      panel1 = new JPanel(); 
      panel1.setLayout(new BorderLayout()); 

      panel1.add(new JButton("North"), BorderLayout.EAST); 
      panel1.add(new JButton("South"), BorderLayout.EAST); 
      panel1.add(new JButton("East"), BorderLayout.EAST); 
      panel1.add(new JButton("West"), BorderLayout.EAST); 
      panel1.add(new JButton("Center"), BorderLayout.EAST); 
     } 
    } 
+0

आपको पता आप सही पूर्व करने के लिए सभी को जोड़ रहे हैं? –

+0

एक उदाहरण के लिए [नेस्टेड लेआउट उदाहरण] (http://stackoverflow.com/questions/5621338/how-to-add-jtable-in-jpanel/5630271#5630271) यह भी देखें कि आप लेआउट कैसे घोंसला कर सकते हैं, जो आप करेंगे यदि आप EAST – Robin

उत्तर

11

मुझे पता है न, तुम कैसे की तरह लग रहे करने के लिए अपने यूआई, लेकिन यह इस तरह की कोशिश करना चाहते हैं:

public void createPage1() { 
    //This will be the main panel. 
    //We are going to put several buttons only in the "EAST" part of it. 

    panel1 = new JPanel(); 
    panel1.setLayout(new BorderLayout()); 

    //We create a sub-panel. Notice, that we don't use any layout-manager, 
    //Because we want it to use the default FlowLayout 
    JPanel subPanel = new JPanel(); 

    subPanel.add(new JButton("1")); 
    subPanel.add(new JButton("2")); 
    subPanel.add(new JButton("3")); 

    //Now we simply add it to your main panel. 
    panel1.add(subPanel, BorderLayout.EAST); 
} 
+0

में एकाधिक बटन जोड़ना चाहते हैं तो इसका उपयोग करने की आवश्यकता है मुझे लगता है कि मैंने देखा कि आपने वहां क्या किया है! यह भी उल्लेख किया गया है कि रिकर्स का भी उल्लेख किया गया है। धन्यवाद! – jerhynsoen

6

BorderLayout केवल प्रति अनुभाग एक घटक की अनुमति देता है। यदि आप BorderLayout रखना चाहते हैं, लेकिन 2+ बटन हैं, तो मेरा सुझाव है कि पहले उन बटनों को JPanel में डालें और फिर JPanel को पूर्व स्लॉट में डालें।

हालांकि, आपके लिए शायद बेहतर लेआउट विकल्प हैं। आप टैब का भी उल्लेख करते हैं, जो पहले से ही JTabbedPane है।

विभिन्न LayoutManagers देखें, और यह पता लगाने का प्रयास करें कि आपके लिए कौन सा सही है।

4

1. JFrame के लिए डिफ़ॉल्ट लेआउट BorderLayout है, और यह पूर्व, पश्चिम, उत्तर, दक्षिण, और केंद्र क्षेत्र, जिसमें से केंद्र डिफ़ॉल्ट है अगर स्थिति का उल्लेख नहीं किया गया है।

2. अब प्रत्येक अनुभाग/क्षेत्र केवल एक विजेट (यानी। स्विंग घटक) पकड़ कर सकते हैं।

3. आप इस Group Layout, जो 2005 में NetBeans टीम द्वारा विकसित किया गया था का उपयोग करके ज्यादा बेहतर तरीके से किया है, का उपयोग करेगा विंडोज बिल्डर प्रो, अब गूगल से मुक्त।

4. लेकिन अगर आप अभी भी BorderLayout साथ जाना चाहते हैं, मैं तुम्हें तरीके आप चाहते हैं में JFrameजोड़ने के लिए बटन के content pane पर JPanel उपयोग करने के लिए सुझाव देगा ......