में घटक का आकार मिलाकर मैं कैलक्यूलेटर जीयूआई के लिए बटन के दो सेट की व्यवस्था करने की कोशिश कर रहा हूं। प्रत्येक व्यक्ति उन्हें बनाने के लिए ग्रुपलाउट का उपयोग करता है। एक सेट संख्या (और "।") है, दूसरा ऑपरेशन बटन के लिए है। यह मूल रूप से काम करता है लेकिन यदि बटनों में से एक की लंबाई डबल लम्बाई है (उदाहरण के लिए मेरे ऑपरेशंस सेट पर बराबर बटन) तो यह अन्य बटन को लाइन से बाहर फेंकता है। मैं एक उदाहरण के रूप में ऑपरेशन सेट का उपयोग करूंगा। बटन के दो कॉलम और चार पंक्तियां हैं। अंतिम पंक्ति में केवल एक बटन होता है - बराबर होता है। मैं दोनों कॉलमों में इस डबल लम्बाई को खींचना चाहता हूं। फिलहाल जब मैं दूसरे कॉलम को इसके ऊपर बैठना चाहता हूं तो इसके अंत में यह दूसरा कॉलम धक्का देता है।जावा - ग्रुपलायआउट
लेआउट के लिए कोड यहां दिया गया है - ऑपरेटल के लिए लेआउट का नाम पहली पंक्ति पर बाएं और दाएं ब्रैकेट का नाम है, और दूसरा, * और/तीसरे पर और अंतिम पंक्ति पर बराबर है । प्रत्येक बटन में न्यूनतम आकार सेट होता है (वे सभी समान होते हैं सिवाय इसके बराबर बराबर होता है)।
operLayout.setAutoCreateGaps(true);
operLayout.setAutoCreateContainerGaps(true);
operLayout.setVerticalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(leftBracket)
.addComponent(rightBracket))
.addGroup(operLayout.createParallelGroup().addComponent(add).addComponent(subtract))
.addGroup(operLayout.createParallelGroup().addComponent(multiply).addComponent(divide))
.addGroup(operLayout.createParallelGroup().addComponent(equals)));
operLayout.setHorizontalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup().addComponent(leftBracket).addComponent(add)
.addComponent(multiply).addComponent(equals))
.addGroup(
operLayout.createParallelGroup().addComponent(rightBracket).addComponent(subtract)
.addComponent(divide)));
मुझे समझ में आता है कि यह क्यों हो रहा है लेकिन मुझे यकीन नहीं है कि इसे कैसे हल किया जाए। क्या कोई आसान तरीका है? या क्या मैं इसे जिस तरह से कर रहा हूं उसे बदलना चाहिए? धन्यवाद
मैं इस कार्य के लिए आपको 'ग्रुपलाउट' की अपनी पसंद के लिए सराहना करता हूं। मेरा मानना है कि यह लेआउट मानक रूपों को निर्धारित करने के लिए सबसे शक्तिशाली है। इसे आसानी से अनदेखा किया जाता है क्योंकि इसका उपयोग जटिल है। यह सीखने के बाद कि यह कैसे काम करता है, मैं इसे लगभग विशेष रूप से उपयोग करता हूं। –
आपके कोड को दोबारा सुधार सकते हैं? वर्तमान; y यह बल्कि अपठनीय है। – ArtB
हां, कृपया करें, हालांकि किसी ने आपको इसे हराया होगा। धन्यवाद @ एरिक रॉबर्टसन, मुझे पता है कि आपका क्या मतलब है, यह जटिल लगता है लेकिन एक बार जब आप इसे समझते हैं, तो यह वास्तव में उपयोगी है! – PatrickJBC