2010-09-17 14 views
6

सामान्य जेएफआरएम मानते हुए, फ्रेम को दिखाई देने से पहले मैं इंससेट मान प्राप्त करने का प्रयास कर रहा हूं। एक बार फ्रेम दिखाई देने के बाद मैं इन मानों को ठीक कर सकता हूं (और मुझे लगता है कि मैं jframe ऑफस्क्रीन बना सकता हूं), लेकिन यह सोच रहा था कि दृश्यता से पहले इंससेट सेट करने में जावा को टिक्ल करने का कोई तरीका है या नहीं। इस कॉल से पहले, सभी इन्सेट मान शून्य हैं।जावा; फ्रेम से पहले इन्सेट प्राप्त करना

नेट, मैं एक फ्रेम क्लाइंट क्षेत्र के सटीक आयाम प्राप्त करने की कोशिश कर रहा हूं - या बेहतर कहा, मैं एक जेएफआरएएम बनाने की कोशिश कर रहा हूं जिसमें बहुत विशिष्ट ग्राहक क्षेत्र आयाम हैं।

अग्रिम धन्यवाद।

उत्तर

12

क्या यह मदद करेगा?

frame.pack(); 
System.out.println("Frame Insets : " + frame.getInsets()); 

मैं एक JFrame है कि बहुत विशिष्ट क्लाइंट क्षेत्र आयाम बनाने के लिए कोशिश कर रहा हूँ।

तो फिर तुम सेट पैनल के वांछित माप के फ्रेम करने के लिए कहा:

panel.setPreferredSize(new Dimension(...)); 
frame.add(panel); 
frame.setResizable(false); 
frame.pack(); 
frame.setVisible(true); 
+3

मैं फ्रेम के लिए कुछ भी जोड़ने के बिना यह कर देना चाहता था। वास्तव में, मैं फ्रेम के लेआउट को भी हटा देता हूं। हालांकि, आपने मुझे सही दिशा में इंगित किया - लगता है कि पैक() वह टिक्ल है जिसे मैं ढूंढ रहा था। अब, अगर मैं करता हूं) जेएफफ्रेम बनाएं, बी) सेटलाउट (शून्य) सी) myJFrame.pack(), और फिर इन्सेट प्राप्त करें, यह वही करता है जो मैं उम्मीद कर रहा था। इसके बाद, मैंने वास्तविक जेफ्रेम आकार (इनसेट्स को ध्यान में रखते हुए) सेट किया है और मैं सही हूं जहां मुझे होना चाहिए। मुझे सही दिशा बताने के लिए धन्यवाद। – RobNY

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