2013-02-12 28 views
5

यह मेरा लेआउट है।स्विंग में फ़्लोलाउट

enter image description here

दो रेडियो बटन स्वागत लेबल के नीचे होना चाहिए।

इस तरह:

__________________________ 
|      | 
|  WELCOME   | 
|   * *   | 
|      | 
|      | 
|      | 
|________________________| 

दो तारांकन रेडियो बटन हैं।

मेरे कोड:

northpanel.setLayout(new FlowLayout(FlowLayout.CENTER)); 
northpanel1.setLayout(new FlowLayout(FlowLayout.CENTER)); 


northpanel.add(welcome); //this welcome text label 

northpanel1.add(r1); //this radio 1 
northpanel1.add(r2); //this radio 2 


add(northpanel,BorderLayout.NORTH); 
add(northpanel1,BorderLayout.NORTH); 
+0

विशेष रूप से अपने प्रश्न क्या है? –

+0

एचपीडब्ल्यू WELCOME लेबल –

+0

के नीचे दो रेडियो बटन प्राप्त करने के लिए समाधान: FlowLayout का उपयोग न करें। मुख्य कंटेनर के लिए सीमावर्ती उपयोग करें और फिर केंद्रीय कंटेनर को जेडैडियूटन को पकड़ने के लिए ग्रिडलाउट का उपयोग करना चाहिए। –

उत्तर

3

northpanel जोड़ें और northpanel एक panel होने GridLayout(0, 1) तो

add(panel, BorderLayout.NORTH); 
+0

स्वागत लेबल हालांकि स्क्रीन पर बहुत दूर छोड़ा गया है लेकिन 2 रेडियो बटन को –

+0

@ user2016977 के रूप में केंद्रीकृत किया गया है: 'फ़्लोलाउटआउट' आज़माएं। स्वागत पैनल पर केंद्र ', सोबोलान [शो] (http://stackoverflow.com/a/14838145/230513) के रूप में। – trashgod

2

आप एक BorderLayout क्षेत्र के लिए एक से अधिक घटक नहीं जोड़ सकते हैं और आप अंत में यह कर रहे हैं। आप एक BorderLayout होने के लिए अपने northpanel बदलने की जरूरत है, तो यह अंदर अपने स्वागत पाठ और northtestpanel1 डाल, इस तरह:

northpanel -> BorderLayout, JFrame's NORTH position 
welcome -> northpanel NORTH position 
northpanel1 -> FlowLayout, northpanel CENTER position 

आप समस्या हो सकती है के बारे में केंद्र में welcome डाल (मैं तो बस, अनुमान लगा रहा हूँ शायद यह ठीक काम करेगा)। यदि आपके पास इसका कोई समाधान नहीं है, तो बस इसे एक नए JPanel में लपेटें और FlowLayoutFlowLayout.CENTER के साथ उपयोग करें।

1

आप फ्लो layout.First के बजाय GridLayout या GridBagLayout उपयोग करने के लिए northpanel की GridBagLayout सेट करें और फिर अपने आवश्यक घटक जोड़ने के लिए, अपने रेडियो मान लीजिए बटन और वेलकम लेबल। अधिक जानकारी के लिए आप here से परामर्श कर सकते हैं।

5
import javax.swing.*; 
import java.awt.BorderLayout; 
import java.awt.FlowLayout; 
import java.awt.GridLayout; 

public class StackOverflow14837740 
{ 
    public static void main (String[] args) 
    { 
     SwingUtilities.invokeLater (new Runnable() 
     { 
      @Override 
      public void run() 
      { 
       createAndShowGUI(); 
      } 
     }); 
    } 

    private static void createAndShowGUI() 
    { 
     JFrame frame = new JFrame(); 
     frame.setLayout (new BorderLayout()); 
     frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE); 

     JPanel northPanel = new JPanel (new GridLayout (2, 1)); 

     JPanel welcomePanel = new JPanel (new FlowLayout (FlowLayout.CENTER));  
     welcomePanel.add (new JLabel ("Welcome")); 

     northPanel.add (welcomePanel); 

     JPanel radioPanel = new JPanel (new FlowLayout (FlowLayout.CENTER)); 

     JRadioButton button1 = new JRadioButton ("Button 1", true); 
     JRadioButton button2 = new JRadioButton ("Button 2", false); 

     ButtonGroup group = new ButtonGroup(); 
     group.add (button1); 
     group.add (button2); 

     radioPanel.add (button1); 
     radioPanel.add (button2); 

     northPanel.add (radioPanel); 

     JPanel middlePanel = new JPanel (new GridLayout (3, 3)); 

     for (int i = 0; i < 3; i++) 
     { 
      for (int j = 0; j < 3; j++) 
      { 
       middlePanel.add (new JButton ("Button " + i + j)); 
      } 
     } 

     JPanel southPanel = new JPanel (new FlowLayout (FlowLayout.CENTER)); 

     southPanel.add (new JLabel ("Whose turn:")); 
     southPanel.add (new JButton ("Reset")); 

     frame.add (northPanel, BorderLayout.NORTH); 
     frame.add (middlePanel, BorderLayout.CENTER); 
     frame.add (southPanel, BorderLayout.SOUTH); 

     frame.pack(); 
     frame.setVisible (true); 
    } 
} 

यह इस तरह दिखता है (हालांकि आप यह थोड़ा आकार बदलने के लिए है):

printscreen

+0

वाह .. आपको बहुत धन्यवाद .. मैं वास्तव में इस समुदाय द्वारा दिए गए प्रयासों से आश्चर्यचकित हूं !! अच्छा काम करते रहो! :) –

+1

@ user2016977 ऐसा इसलिए है क्योंकि समुदाय विशाल है (सैकड़ों हजारों लोग) ... ओह, और क्योंकि हम कमाल हैं: डी। 'FlowLayout.CENTER' के लिए –

+0

+1। – trashgod