Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    21

    come capire quale Jcomponent ha generato un exception

    buonsasera
    in poche parole ho un pannello con 2 JTextfield e 2 JLabel e un bottone di conferma
    nel caso si clicchi il tasto di conferma senza aver riempito entrambe le JTextfield vorrei che quella che non è stata riempita cambiasse colore (con il metodo setBackground...).
    Nell listener di conferma c è un blocco try, catch che cattura l errore
    c è un modo per capire qual delle 2 JTextfield ha lanciato l errore
    codice:
     class ConfInsSListener implements ActionListener {
    
    
        public void actionPerformed(ActionEvent  e) {
            int f=0;
            try{
            Stadio s = new Stadio (fieldSnome.getText(),Integer.parseInt(fieldSnposti.getText()));
            }
            
            catch(Exception a ){
                f=1;        
            }
            
            finally{
            if(f==0)
            JOptionPane.showMessageDialog(null,"Modifica Effettuata","AGGIUNGI STADIO",JOptionPane.INFORMATION_MESSAGE);
            
            if(f==1){
            JOptionPane.showMessageDialog(null,"Impossibile Effettuare La Modifica","ERRORE INSERIEMENTO CAMPI",JOptionPane.ERROR_MESSAGE);
            }
            
            fieldSnome.setText("");       //svuota entrambi i field quasiasi cosa accada
             fieldSnposti.setText("");}
        }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    All'interno del blocco try, l'unica cosa che può generare un'eccezione è Integer.parseInt() (a meno che il costruttore di Stadio non possa generare eccezioni, ma non lo posso sapere io), quindi non ci sono dubbi.
    Ad ogni modo, è sufficiente predisporre dei controlli a monte e agire di conseguenza:

    codice:
    public void actionPerformed(ActionEvent ae) {
       if (!"".equals(fieldSnome.getText().trim()) && !"".equals(fieldSnposti.getText().trim())) {
          // Le textfield sono entrambe valorizzate, procedi
          try {
             ...
          } catch (Exception e) {
             ...
          }
       } else {
          if ( "".equals(fieldSnome.getText().trim()) ) {
             // fieldSnome è vuota
          }
          if ( "".equals(fieldSnposti.getText().trim()) ) {
             // fieldSnposti è vuota
          }
       }
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    21
    GRAZIE MILLE

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.