से इंस्टेंटिएट जेडियलॉग मुझे JPanel
मिला है, जिसे मैं माउस क्लिक का जवाब देना चाहता हूं और फिर JDialog
खोलना चाहता हूं। JDialog
कन्स्ट्रक्टर को JFrame
का उदाहरण चाहिए और JPanel
नहीं - मैं इसके आसपास कैसे काम करूं?जेपीनल
जेपीनल
उत्तर
एक निर्माता है कि तर्क की जरूरत नहीं है नहीं है:
JDialog dialog = new JDialog();
क्या आप चाहते हैं संवाद मोडल बनाने के लिए है, हो सकता है आप की तरह आप मुख्य JFrame की एक स्थिर संदर्भ, कुछ प्राप्त कर सकते हैं:
JDialog dialog = new JDialog(MyMainJFrame.getInstance());
पैरामीटर मुक्त कन्स्ट्रक्टर का उपयोग करके संवाद मालिक कम हो जाएगा। मुझे लगता है कि करने के लिए सबसे अच्छी बात यह है कि फ्रेम को आपके पैनल के मालिक के संवाद का मालिक बनना होगा।
इसके द्वारा, मेरा मतलब है कि आपको अपने जेपीनल से getParent() का उपयोग अपने मालिक को खोजने के लिए करना चाहिए और फिर इस ऑब्जेक्ट को अपने जेएफआरएएम के मालिक के रूप में मिला।
उस के लिए एक कच्चे कोड
java.awt.Container c = myPanel.getParent();
while (!(c instanceof javax.swing.JFrame) && (c!=null)) {
c = c.getParent();
}
if (c!=null) {
JFrame owner=(javax.swing.JFrame) c;
JDialog myDialog=new JDialog(owner);
}
मैं इस कोड का परीक्षण नहीं किया होगा, लेकिन यह enought अच्छा आप विचार को समझने के लिए है।
यदि आपने जॉप्शनपेन के साथ जाने का फैसला किया है, तो आप माउसक्लिड ईवेंट को संभालने के लिए माउस एडाप्टर आंतरिक कक्षा के साथ जेपीनेल में माउसलिस्टर जोड़ सकते हैं। आंतरिक कक्षा के भीतर से पैनल तक पहुंचने के लिए आपको पैनल फाइनल घोषित करना होगा।
final JPanel testPanel = new JPanel();
testPanel.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(testPanel,"Title","InformationMessage",JOptionPane.INFORMATION_MESSAGE);
}});//end of mouseClicked method
आप वास्तव में एक माता पिता संवाद या फ्रेम करने के लिए JDialog संलग्न करने के लिए, खासकर यदि आप यह मोडल चाहते हैं (एक माता पिता खिड़की पारित करके की कोशिश करनी चाहिए, संवाद अपनी खिड़की से जोड़ दी जाएगी और माता पिता को लाने लाएगा बाल संवाद भी)। अन्यथा, उपयोगकर्ता अनुभव वास्तव में गलत हो सकता है:
JPanel panel = new JPanel();
Window parentWindow = SwingUtilities.windowForComponent(panel);
// or pass 'this' if you are inside the panel
Frame parentFrame = null;
if (parentWindow instanceof Frame) {
parentFrame = (Frame)parentWindow;
}
JDialog dialog = new JDialog(parentFrame);
...
: खो संवाद, मॉडल संवाद देखे बिना अवरुद्ध खिड़कियां, आदि ...
अपने JPanel माता पिता खिड़की खोजने के लिए, आप सभी की जरूरत के लिए इस कोड है यदि आप नहीं जानते कि आप फ़्रेम या संवाद में हैं, तो दोनों वर्गों के लिए "exampleof" परीक्षण करें।
- 1. जेपीनल
- 2. जेपीनल
- 3. एक जेपीनल
- 4. माउस जेपीनल
- 5. जावा - जेपीनल
- 6. जेएफइल कूसर एक जेपीनल
- 7. जावा में जेपीनल पैडिंग
- 8. जावा/स्विंग: एक जेपीनल
- 9. जेपीनल ढाल पृष्ठभूमि
- 10. जेमेनूबार को जेपीनल में जोड़ें?
- 11. जावा में जेपीनल बनाम जेएफआरएम
- 12. जेपीनल ग्राफिक्स समाशोधन और पुनर्भुगतान?
- 13. जेपीनल को बेहतर क्यों जोड़ रहा है?
- 14. जावा स्विंग - जेपीनल को कैसे अक्षम करें?
- 15. वास्तविक जेपीनल आकार कैसे प्राप्त करें?
- 16. जेबटन पर क्लिक करके जेपीनल कैसे जोड़ें?
- 17. दो जेपीनल ऑब्जेक्ट्स के बीच संदेश भेजना
- 18. नेटबीन्स में जेएफआरएएम से जेपीनल तक
- 19. जेपीनल पर एनिमेटेड gif प्रदर्शित करें
- 20. जेपीनल के लिए माउस लिस्टनर गायब माउसक्लेटेड घटनाएं
- 21. जेपीनल सेटबैकग्राउंड (रंग। ब्लैक) कुछ भी नहीं करता
- 22. मैं जेपीनल और उसके बच्चों पर टूलटिप कैसे सेट करूं?
- 23. एक जेपीनल मैन्युअल रूप से आकार बदलने योग्य
- 24. जेपीनल की चौड़ाई और ऊंचाई कैसे सेट करें?
- 25. फ्रेम के अंदर एक जेपीनल को दोबारा लगाने के लिए
- 26. विंडो के एरो प्रभाव को जेपीनल में कैसे जोड़ें?
- 27. जावा के साथ जेपीनल में जेटीबल कैसे प्रदर्शित करें?
- 28. माउसलिस्टर में क्लिक किए गए जेपीनल घटक का निर्धारण करें। घटना
- 29. जेपीपर रीपॉर्ट्स व्यूअर को जेपीनल/जेएफआरएएम के अंदर कैसे प्रदर्शित करें ..?
- 30. जावा जीयूआई: जेएफआरएएम पर जेपीनल में जेबटन पर फ़ोकस कैसे सेट करें?
क्या आपने जॉप्शनपेन का उपयोग करने पर विचार किया है? – ChadNC