मुझे पता है, यह प्रश्न here: पर अक्सर अक्सर दिखाई देता है लेकिन मैं कुछ बहुत ही विशिष्ट उदाहरण प्रस्तुत करना चाहता हूं ... मुझे यकीन नहीं है कि मैं चीजें बनाती हूं सही।जेडियलोग से वापसी मूल्य; निपटान(), सेट विज़िबल (झूठा) - उदाहरण
मुझे एक जेडियलॉग मिला है जिसमें मैं कुछ मान टाइप कर सकता हूं, कुछ चेकबॉक्स का चयन कर सकता हूं ... जो भी ... मुझे माईडियलोग में कुछ प्रतिक्रिया वस्तु भी मिली है जो माईडियोलॉग के "उत्तर" का प्रतिनिधित्व करती है।
JFrame में जो कॉल/JDialog बनाता है:, यह समाधान काम करता है:
MyDialog d = new MyDialog(this, ...);
d.showDialog();
// After MyDialog is closed (it's modal):
MyDialog.Response dialogResponse = d.getDialogResponse();
// Do something with response...
डायलॉग (संवाद "सहेजें" बटन पर क्लिक करके बंद किया जा सकता):
btnSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialogResponse = prepareResponse(); // prepares response on the basis of some data introduced by a user; dialogResponse is called from JFrame after Dialog is closed
setVisible(false);
dispose(); // <-- Important
}
});
मेरा प्रश्न है मेरा मतलब है, लाइन MyDialog.Response dialogResponse = d.getDialogResponse();
उचित मान देता है, लेकिन ... यदि मैं निपटान() का उपयोग करके संवाद बंद करता हूं, तो सभी संवाद संसाधनों को कचरा इकट्ठा किया जा सकता है (भविष्यवाणी करना मुश्किल नहीं है, क्या मैं सही हूँ?) । तो क्या यह मेरे संवाद की प्रतिक्रिया को इस तरह से पुनर्प्राप्त करना सही है ... शायद इस मामले में मुझे dispose()
के बिना केवल setVisible(false);
लिखना चाहिए।
यदि आपको अपने 'जेडियलॉग' की आवश्यकता है तो इसे बाद में निपटाना न करें और केवल 'सेट विज़िबल (झूठा)' का उपयोग करें, अन्यथा आप इसे बिना किसी समस्या के निपटान कर सकते हैं – Paniz
मुझे यकीन नहीं है कि मैं समझता हूं, इसलिए टिप्पणी नहीं कर सकता आप फ्रेम से संवाद का निपटान करते हैं? – npinti
@npinti हां, लेकिन मैं मुख्य रूप से उत्सुक हूं यदि मैं डायलॉग –