Posto qui il codice che ho scritto ho un problema con la finestra di conferma di uscita, in pratica qualunque pulsante scelgo chiude sempre il frame non so proprio come risolvere il problema. Grazie in anticipo.

codice:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;

public class Crittografia extends JFrame
{   private TextArea taLett=new TextArea("",30,40);
    private TextArea taScritt=new TextArea("",30,40);
    private JButton jBtScelta=new JButton("scelta file");
    private JPanel jPnord=new JPanel();
    private JPanel jPcentro=new JPanel();
    private JTextField jTxPassword=new JTextField();
    private JFileChooser File_scelta=new JFileChooser();
    
    public Crittografia(int larg, int altezza)
    {   setSize(larg,altezza);
        Container contenitore=getContentPane();
        contenitore.setLayout(new BorderLayout());
        jPnord.setLayout(new GridLayout(1,4,2,2));
        jPnord.add(jBtScelta);
        jPnord.add(new Label("password"));
        jPnord.add(jTxPassword);
        contenitore.add(jPnord, "North");
        jBtScelta.addActionListener(new EvButton());
        jPcentro.setLayout(new GridLayout(1,2,2,5));
        jPcentro.add(taScritt,"West");
        jPcentro.add(taLett,"East");
        contenitore.add(jPcentro,"Center");
    }
    private void seleziona_file()
    {   String nomefile="";
        try{ if(File_scelta.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
            {nomefile=File_scelta.getSelectedFile().getPath();
             taLett.setText("file letto:"+nomefile+"\n");
             taScritt.setText("file scrivere:"+nomefile+"by\n");
             visualizzafile(nomefile);
            }
        }
        catch(Exception ex) {System.out.println("ecc 1:"+ex.getMessage());}
    }
    private void visualizzafile(String nomefile){
        String rigaLetta="", rigaScritta="";
        try{FileReader fileLett=new FileReader(nomefile);
            BufferedReader buFileLett=new BufferedReader(fileLett);
            int r=0, nc=0, lmax=0;
            String l="";
            String k="";
            while ((rigaLetta=buFileLett.readLine())!=null){
                k=rigaLetta+k;
                r++;
                taLett.append(r+":"+rigaLetta+'\n');
                nc=rigaLetta.length()+nc;
                if(rigaLetta.length()>lmax)
                  lmax=rigaLetta.length();
                if(rigaLetta.length()==lmax)
                  l=rigaLetta;
            }
            taScritt.append("Numero righe:"+r+'\n');
            taScritt.append("Numero caratteri:"+nc+'\n');
            taScritt.append("Lunghezza max righe:"+lmax+'\n');
            taScritt.append("Lunghezza media righe:"+(nc/r)+'\n');
            taScritt.append("Riga massima:"+l+'\n');
            taScritt.append("Numero vocali:"+contaVocali(k)+'\n');
            buFileLett.close();
        }
        catch (Exception ex) {System.out.println("eccezione3:"+ex.getMessage());}
    }
    public static int contaVocali(String S){
        String Vocali="aAeEiIoOuU";
        int NVocali=0;
        for(int I=0; I<S.length();I++)
           if(Vocali.indexOf(S.substring(I,I+1))!=-1)
             NVocali++;
        return(NVocali);
    }
    public static void main(String arg[]){
        Crittografia F_uno=new Crittografia(500,500);
        F_uno.addWindowListener(new ev_Finestra());
        F_uno.setLocation(200,0);
        F_uno.setVisible(true);
    }
    class EvButton implements ActionListener{
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            seleziona_file();
        }
    }
}
class ev_Finestra extends WindowAdapter 
{   public void windowClosing(WindowEvent event)
    {JOptionPane p1=new JOptionPane();
     int x=p1.showConfirmDialog(null,"Conferma per terminare","ATTENZIONE!!!", 2);
     if(x==JOptionPane.YES_OPTION) System.exit(0);
    }
}