jInrkamePane - java, स्विंग, डेस्कटॉप-एप्लिकेशन, netbeans-7, jinternalframe का उपयोग किए बिना jDesktopPane पर jFrame को कॉल करने के लिए कैसे करें

मैंने अपना प्रोजेक्ट पूरा किया जो मेरे द्वारा सौंपा गया थाविश्वविद्यालय लेकिन अब मैं अपनी परियोजना के लिए एमडीआई बनाने की कोशिश कर रहा हूं। मैंने 10 jFrame और एक मुख्य रूप का उपयोग किया, जो jFrame भी है, इसके बाद मैंने jFrame को कॉल करने के लिए एक मेनू बार, 10 jBrons को jFrame और एक jDesktopPane को जोड़ने के लिए जोड़ा। सभी 10 jButton में jDesktopPane में jFrame स्थान पर कॉल करने के लिए नीचे दिया गया कोड:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
asd t = new asd();
dskp.add(t);
t.setVisible(true);

}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}

लेकिन मेरे साथ काम नहीं कर रहा है और नीचे त्रुटि संदेश दे रहा है:

java.lang.illegalargumentexception: adding a window to a container

यह कैसे करें और इस मुद्दे को हल करें क्योंकि मैंdidn "t किसी भी jInternal फ़्रेम का उपयोग नहीं किया है। मुझे लगता है कि इस पर मैं jInternale फ्रेम का उपयोग करने में सक्षम नहीं हूं क्योंकि मैंने jFrame पर सभी काम किए जैसे कि कोड के साथ पूर्ण GUI और फिर से jInternale फ़्रेम पर सभी काम करना संभव है। मेरी अंतिम परियोजना प्रस्तुत करने का समय।

उत्तर:

उत्तर № 1 के लिए 4

यदि आप "JDesktopPane को विंडो रखने की इच्छा रखते हैं, तो आपको JInternalFrames का उपयोग करने की आवश्यकता है। यह आपका सबसे अच्छा समाधान है कि यह आपके लिए आकर्षक है या नहीं।"

इसमें एक सबक यह है कि आपको प्रयास करना चाहिएऐसी कक्षाएं बनाने से बचें जो स्विंग घटकों को बढ़ाती हैं, विशेष रूप से जेफ्रेम जैसे शीर्ष-स्तरीय घटक, और इसके बजाय जेपीनेल का उत्पादन करने वाले वर्ग बनाते हैं, ऐसे घटक जो कहीं भी लचीले होते हैं जैसे कि जेफ्रेम, इनइंटरनल फ़्रेम्स, जियोनीलॉग्स, ज्यूपशन, अन्य जेपीनेल, आदि। ..

ध्यान दें कि सामग्री को प्राप्त करने के लिए एक कीचड़ हैआपका JFrame, इसे JInternalFrame में डालें और उस JDesktopPane में डालें, या तो JFrame से JInternalPanes के contentPane को सेट करें।

asd t = new asd();
JInternalFrame internalFrame = new JInternalFrame();
internalFrame.setContentPane(t.getContentPane());
internalFrame.pack();

// set the internalFrame"s location
// ...

internalFrame.setVisible(true);
dskp.add(internalFrame);

लेकिन फिर से ध्यान दें कि यह एक कीचड़ है और संभावित जाल लगाता है।