2011-08-22 15 views
7

मैंने एक जेएफआरएम बनाया है, और इसकी अपेक्षा करने के बजाय, इसका आकार प्राप्त करने का प्रयास गलत परिणाम दे रहा है।जेएफआरएएम: वास्तविक सामग्री आकार प्राप्त करना

मैंने यह निर्धारित किया है कि इसमें किनारों के चारों ओर ऑपरेटिंग सिस्टम सीमाएं और शीर्षक पट्टी शामिल है।

मैं वास्तविक आकार को कैसे प्राप्त/सेट कर सकता हूं जो मैं प्रस्तुत करने के लिए उपलब्ध हूं?

+1

क्या आप वाकई 'जेपीनल' हैं और 'जेएफआरएएम' नहीं हैं? यदि यह बाद वाला है, तो 'frame.getContentPane() का उपयोग करें। GetSize() '। आपको [यह प्रश्न] भी मिल सकता है (http://stackoverflow.com/questions/2796775/setting-the-size-of-a-contentpane-inside-of-a-jframe) उपयोगी ... –

+0

ओह, क्षमा करें, हाँ यह एक जेएफआरएम था। मैं बेकार नहीं हो सकता मैं उन्हें मिश्रित कर दिया। माफ़ी, मैंने सवाल तय किया। –

+0

* "ऐसा इसलिए हो सकता है क्योंकि मैं इसे गलत तरीके से कह रहा हूं" * यह संभव है कि आपका पूरा दृष्टिकोण गलत है। एक कस्टम प्रस्तुत घटक के लिए यह पूछना अधिक आम है कि 'मैं कितना बड़ा हूं?'। किसी और चीज के लिए, लेआउट को ऐप के बिना स्वचालित रूप से आकार बदलना चाहिए। कभी आयाम या आकार के लिए पूछना। –

उत्तर

5

आपको जो आकार मिल रहा है वह सामग्री औरinsets का आकार है। यदि आप Jcomponent.getInsets() का उपयोग करते हैं, तो आप सामग्री के आकार को सरल घटाव के साथ पा सकते हैं।

+0

धन्यवाद, अब काम करता है :) –

2

आपका प्रश्न भ्रमित कर रहा है: जेपीनल के पास टाइटल बार या विंडो सीमाएं नहीं हैं, वे अमूर्त कंटेनर हैं जो अंदरूनी जेफ्रेम हैं। जेएफआरम्स टाइटल बार और विंडो सीमाओं वाली वस्तुएं हैं।

JPanel.getSize() इच्छित के रूप में कार्य करना चाहिए। हालांकि, जेएफआरम्स के लिए आप JFrame.getContentPane().getSize() का उपयोग करना चाहेंगे, क्योंकि getContentPane()JPanel (जो वास्तविक सामग्री क्षेत्र है) देता है।

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