Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    5

    Ho un problema con le finestre di dialogo di java

    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);
        }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Ho un problema con le finestre di dialogo di java

    Inizia indentando il codice con il tag CODE, così non si capisce nulla...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    5
    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);
        }
    }

  4. #4

    Moderazione

    Il tag CODE funziona così:
    scrivi
    [code]
    qui incolli il codice
    [/code].

    Ora ho corretto io, in futuro formatta il codice correttamente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ad occhio mi pare che nel tuo costruttore manchi il seguente settaggio:

    setDefaultCloseOperation(WindowConstants.DO_NOTHIN G_ON_CLOSE);

    In questo modo hai tu il controllo di quello che succede alla chiusura
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    5
    Si, è vero grazie mille mancava quella riga di codice all'interno del main.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.