2011-12-31 12 views
48

मैंने JOptionPane बनाया है और इसमें केवल दो बटन YES_NO_OPTION हैं।जॉप्शनपेन हाँ/कोई विकल्प संवाद बॉक्स समस्या की पुष्टि

JOptionPane.showConfirmDialog बाहर पॉप के बाद, मैं क्लिक करने के लिए YES BUTTONJFileChooser खोलने जारी रखना चाहते हैं और अगर मैं NO BUTTON क्लिक किया यह कार्रवाई को रद्द कर देना चाहिए।

यह बहुत आसान लगता है लेकिन मुझे यकीन नहीं है कि मेरी गलती कहां है।

कोड स्निपेट:

if (textArea.getLineCount() >= 1) { //The condition to show the dialog if there is text inside the textArea 

    int dialogButton = JOptionPane.YES_NO_OPTION; 
    JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton); 

    if (dialogButton == JOptionPane.YES_OPTION) { //The ISSUE is here 

    JFileChooser saveFile = new JFileChooser(); 
    int saveOption = saveFile.showSaveDialog(frame); 
    if(saveOption == JFileChooser.APPROVE_OPTION) { 

    try { 
     BufferedWriter fileWriter = new BufferedWriter(new FileWriter(saveFile.getSelectedFile().getPath())); 
     fileWriter.write(textArea.getText()); 
     fileWriter.close(); 
    } catch(Exception ex) { 

    } 
} 

उत्तर

89

आप showConfirmDialog को कॉल के रिटर्न मान को देखने की जरूरत है। यानी .:

int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton); 
if(dialogResult == JOptionPane.YES_OPTION){ 
    // Saving code here 
} 

आप dialogButton, जो आप बटन कि संवाद से प्रदर्शित किया जाना चाहिए निर्धारित करने के लिए इस्तेमाल कर रहे थे के खिलाफ परीक्षण किया गया, और इस चर अद्यतन नहीं किया गया - JOptionPane.YES_NO_OPTION के अलावा और कुछ तो dialogButton कभी नहीं गया होता।

showConfirmDialog के लिए

जावाडोक प्रति:

रिटर्न: एक पूर्णांक उपयोगकर्ता

+0

वाह यह काम किया! मैंने अभी 'शो कॉन्फर्मडिअलॉग' का उपयोग करना शुरू कर दिया है और मुझे यह बहुत अच्छा नहीं मिला, हालांकि मैंने जावाडोक पढ़ा। लेकिन अब मेरी गलती और आपकी व्याख्या के साथ यह बहुत भ्रम को मंजूरी दे दी है। मैं इसके साथ खेलूँगा और देख सकता हूं कि मैं किसके साथ आ सकता हूं। धन्यवाद!!! – Sobiaholic

+3

@iMohammad, आप स्विंग ट्यूटोरियल क्यों नहीं पढ़ते ?? ट्यूटोरियल में पिछले कुछ दिनों में पूछे जा रहे सभी प्रश्नों के लिए कामकाजी उदाहरण शामिल हैं। – camickr

+1

कैमिकर के सुझाव से लिंक: http://docs.oracle.com/javase/tutorial/uiswing/ – ziesemer

26

इस प्रयास करें द्वारा चयनित विकल्प का संकेत,

int dialogButton = JOptionPane.YES_NO_OPTION; 
int dialogResult = JOptionPane.showConfirmDialog(this, "Your Message", "Title on Box", dialogButton); 
if(dialogResult == 0) { 
    System.out.println("Yes option"); 
} else { 
    System.out.println("No Option"); 
} 
+0

मैं 'इस' के बजाय क्या रख सकता हूं? मैं इसे एक स्थिर संदर्भ में कर रहा हूं। –

6
int opcion = JOptionPane.showConfirmDialog(null, "Realmente deseas salir?", "Aviso", JOptionPane.YES_NO_OPTION); 

if (opcion == 0) { //The ISSUE is here 
    System.out.print("si"); 
} else { 
    System.out.print("no"); 
} 
संबंधित मुद्दे