jframe

2011-06-12 7 views
11

पर एकाधिक जेपीनल जोड़ना मैं एक जेएफआरएएम पक्ष में दो जेपीनल जोड़ना चाहता हूं। दो बक्से jpanels हैं और बाहरी बॉक्स एक jframe enter image description herejframe

मेरे पास कोड की ये पंक्तियां हैं। मेरे पास सीटिन पैनेल नामक एक वर्ग है जो जेपीनेल को बढ़ाती है और इस कक्षा के अंदर मेरे पास एक कन्स्ट्रक्टर और एक विधि है जिसे यूटिलिटीबुटन कहा जाता है जो एक जेपीनल ऑब्जेक्ट देता है। मैं उपयोगिताबट्टन जेपीनेल को दाईं ओर होना चाहता हूं। मेरे पास जो कोड है, वह केवल तब तक utillityButtons JPanel प्रदर्शित करता है जब यह चलता है।

public guiCreator() 
    { 
     setTitle("Passenger Seats"); 
     //setSize(500, 600); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     Container contentPane = getContentPane(); 

     seatingPanel seatingPanel1 = new seatingPanel();//need to declare it here separately so we can add the utilityButtons 
     contentPane.add(seatingPanel1); //adding the seats 
     contentPane.add(seatingPanel1.utilityButtons());//adding the utility buttons 

     pack();//Causes this Window to be sized to fit the preferred size and layouts of its subcomponents 
     setVisible(true); 
    } 

उत्तर

26

सबसे लचीला लेआउटमैनेजर मैं अनुशंसा करता हूं BoxLayout है।

आप निम्न कर सकते हैं:

JPanel container = new JPanel(); 
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS)); 

JPanel panel1 = new JPanel(); 
JPanel panel2 = new JPanel(); 

//panel1.set[Preferred/Maximum/Minimum]Size() 

container.add(panel1); 
container.add(panel2); 

फिर अपने फ्रेम घटक पर आपत्ति उठाने का कंटेनर जोड़ें।

+0

जब मैं ऐसा करने की कोशिश करता हूं तो यह मुझे यह त्रुटि देता है BoxLayout को साझा नहीं किया जा सकता – dave

+0

@dave: क्षमा करें, मेरी गलती। मैंने अपना उत्तर अब संपादित किया है। – Heisenbug

+0

धन्यवाद यह अब काम कर रहा है – dave

5

आपको स्विंग को पेश करने वाले लेआउट प्रबंधकों के बारे में पढ़ने और सीखने की आवश्यकता है। आपकी स्थिति में यह जानने में मदद मिलेगी कि एक जेएफआरएएम की सामग्रीपेन डिफ़ॉल्ट रूप से सीमाबद्धआउट का उपयोग करती है और आप अपना बड़ा केंद्र जेपीनल बॉर्डरलाउट.सीईंटर और अन्य जेपीनल बॉर्डरलाउट.एस्ट जोड़ सकते हैं। अधिक यहां पाया जा सकता: Laying out Components in a Container

संपादित करें 1
एंड्रयू थॉम्पसन पहले से ही अपने पिछले पोस्ट यहाँ में अपने कोड में लेआउट प्रबंधकों पर थोड़ा तुम से पता चला है: why are my buttons not showing up?। फिर, कृपया उन्हें बेहतर समझने के लिए ट्यूटोरियल पढ़ें।

संबंधित मुद्दे