java - Swing: How could I get JInternalFrame treated equally to other components inside a container? -
पृष्ठभूमि जानकारी:
मैं एक दृश्य आरेख संपादक को कार्यान्वित कर रहा हूं, जो
- विभिन्न जटिल तत्व (शीर्षक पट्टी, उप-तत्वों के साथ फिर से बड़ा हो) और
- विभिन्न सरल तत्व (फिर से बड़ा नहीं, कोई शीर्षक बार, नहीं सब तत्वों)।
सभी तत्व ड्रैग करने योग्य हैं।
मैं जेएनएनल (सामान्य तत्वों के लिए) के साथ तत्वों का प्रतिनिधित्व करने के लिए जेनेटअलफ्राम (जटिल तत्वों के लिए) का प्रयोग कर रहा हूं योजनाबद्ध आरेख।
इस अवधारणा के साथ मेरे पास कई समस्याएं हैं:
> केस 1 - कंटेनर एक JDesktopPane है।
- JInternalFrames अन्य तत्वों के ऊपर हमेशा से रहे हैं
- पर क्लिक करने से अन्य तत्वों डॉन ' टी "निष्क्रिय" पूर्व में सक्रिय JInternalFrame
केस 2 - कंटेनर एक JLayeredPane है:
- एक JInternalFrame अंदर कुछ तत्वों क्लिक करने के बाद, यह हमेशा के "सक्रिय" रहता है
- मेरी कस्टम सीमा (जो तब आवश्यक है जब मैं मैन्युअल रूप से JInternalFrame की शीर्षक बार निकाल देता हूं) हर बार वर्तमान एलएएफ सीमा से प्रतिस्थापित किया जाता है, सक्रिय करने के बाद / JInternalFrame को निष्क्रिय कर रहा है।
मुझे जेएनआइरफ़्रेम्स को सक्रिय करने के पीछे पूरी अवधारणा नहीं मिलती। अगर मैं एक जम्मू-इन-फ़्राम को बिल्कुल सक्रिय नहीं कर सकता , तो मैं प्रकरण 2 चुन सकता हूं कोई भी खुश होगा।
कृपया मुझे सलाह दी, दी गई समस्याओं का सरल और सीधा समाधान क्या होगा।
नोट: घटक का चयन और जेएनआइनेफ्राम के सक्रियण अलग-अलग चीजें हैं।
मैं आपकी समस्या को गलत समझ सकता हूँ क्या आपने जेएफ़ के सेट सेलेक्ट () पद्धति को देखने की कोशिश की है? ऐसा लगता है विधि ओवरराइड और vetoable सक्रियण की घटनाओं के लिए समर्थन कर रहे हैं
संपादित करें:। हो सकता है कि हम जावाडोक राज्यों के रूप में कुछ पारिभाषिक गलतफहमी है:
/ ** * यह दिखा रहा है कि अगर आंतरिक फ्रेम * का चयन या अचयनित करता है * ए एंड एलटी; कोड & gt; JInternalFrame & lt; / code & gt; आम तौर पर अपनी शीर्षक बार * को अलग-अलग खींचता है * यदि यह * चयनित फ्रेम है, जो उपयोगकर्ता को इंगित करता है कि यह * आंतरिक फ्रेम का फोकस है * इस विधि आंतरिक फ्रेम * के राज्य चयनित करने के लिए सही का निशान हटाने से बदल जाता है, यह आग एक * & LT; कोड & gt; InternalFrameEvent.INTERNAL_FRAME_ACTIVATED & lt; / कोड & gt; घटना। * यदि परिवर्तन चुने गए को चुनने के लिए, * एक & lt; कोड & gt; आंतरिकफार्मएवेंट। INTERNAL_FRAME_DEACTIVATED & lt; / code & gt; इवेंट * निकाल दिया जाता है * * @ परम ने एक बूलीयन चुना, जहां & lt; कोड & gt; सच & lt; / code & gt; का अर्थ है कि यह आंतरिक फ्रेम * चुना जाना चाहिए (वर्तमान में सक्रिय) * और & lt; code & gt; गलत & lt; / code & gt; इसका अर्थ है कि यह अचयनित होना चाहिए * @ एक्सप्शन PropertyVetoException जब * संपत्ति को स्थापित करने का प्रयास & lt; code & gt; JInternalFrame & lt; / code & gt; * * @see #isShowing * @see InternalFrameEvent # INTERNAL_FRAME_ACTIVATED * @see InternalFrameEvent # INTERNAL_FRAME_DEACTIVATED * * @beaninfo * विवश: सच * बाध्य: सच * वर्णन: यह दर्शाता है इस आंतरिक फ्रेम वर्तमान में सक्रिय फ्रेम है कि क्या *। * /
संपादन 2: अब मैं अपना दूसरा केस फिर से पढ़ता हूं। मैं कहूंगा कि प्रत्येक जेआईएफ के पास अलग-अलग फ़ोकस / चयन वातावरण है। आप एक ऐसा तरीका बना सकते हैं जो आपके सभी जेआईएफ को पार कर लेता है और उसमें कुछ भी अचयनित नहीं करता जब तक कि वह घटक जो आप का चयन करना चाहते थे।
Comments
Post a Comment