2010-09-21 10 views
5

संक्षेप में, मेरी जावा पृष्ठभूमि में पृष्ठभूमि की आवश्यकता है, और कुछ घटनाओं पर, उस छवि के शीर्ष पर कुछ अन्य ग्राफिक्स बनाएं।जावा - जेपीएनल्स का नियंत्रण जेड ऑर्डर

मैं सोच रहा था कि मैं पृष्ठभूमि छवि खींचने के लिए एक जेपीनेल का उपयोग करूंगा, इसे प्रोग्राम की शुरुआत में अपने जेएफआरएम में जोड़ूंगा, और फिर कुछ घटनाओं पर इसके ऊपर अन्य जेपीनल जोड़ दूंगा। समस्या यह है कि स्विंग ने जेपीएनल्स को सबसे ज्यादा ज़ेड इंडेक्स जोड़ा है, इसलिए मेरी पृष्ठभूमि को सबकुछ के ऊपर क्या दिखाना चाहिए।

क्या जेपीएनएल के जेड इंडेक्स/ऑर्डर को नियंत्रित करने का कोई तरीका है, या क्या मैं इस बारे में पूरी तरह गलत हूं?

उत्तर

2

एकाधिक JPanels जोड़ सकते हैं और ज़ेड-ऑर्डर उपयोग करने के लिए अजीब लग रहा है। मैं सुझाव दूंगा कि आप या तो पेंट कॉम्पोनेंट (ग्राफिक्स जी) विधि ओवरराइट के साथ एक जेपीनेल जोड़ें, जहां आप अपनी घटनाओं के अनुसार सही छवि खींचते हैं।

या CardLayout उपयोग करें, और (विभिन्न छवियों के साथ) JLabels जोड़ें, फिर जब आपके ईवेंट ट्रिगर करता है

CardLayout cl = (CardLayout)getLayout(); 
cl.show(this, "card3"); 

का उपयोग सही JLabel दिखाने के लिए।

1

मैं सोच रहा था मैं करने के लिए एक JPanel उपयोग करते हैं, में पृष्ठभूमि छवि ड्रा करेंगी मेरी JFrame करने पर जोड़ने के कार्यक्रम की शुरुआत,

उचित लग रहा है।

और फिर कुछ घटनाओं पर के शीर्ष पर अन्य जेपीनेल जोड़ें। समस्या स्विंग जेपीएनल्स को सबसे पहले जेड इंडेक्स पहले जोड़ती है, तो क्या होना चाहिए मेरी पृष्ठभूमि सब कुछ के शीर्ष पर दिखाई दे रही है।

पैनल में एक पैनल जोड़ना पैनल में एक और घटक जोड़ने जैसा है। बाल घटक को मूल पैनल के शीर्ष पर चित्रित किया जाएगा। जेड-ऑर्डर के साथ खेलने की जरूरत नहीं है।

कुंजी के साथ पैनल पर लेआउट प्रबंधक सेट करना कुंजी है। फिर आप जिस पैनल को छवि पैनल में जोड़ते हैं उसे गैर-अपारदर्शी बनाया जाना चाहिए ताकि पृष्ठभूमि छवि चित्रित की जा सके।

शायद Background Panel आपकी मदद कर सकता है। यह स्वचालित रूप से पैनल गैर-अपारदर्शी में सीधे जोड़ा गया कोई भी घटक बनाता है।

2

JLayeredPane इस उद्देश्य के लिए डिज़ाइन किया गया है। यह आपको घटकों के जेड-ऑर्डर को नियंत्रित करने की अनुमति देता है।

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