Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema con focus lost

    Salve a tutti!!! Ho una jtextfield attraverso il quale, inserendo il codicecliente, ricerco i dati anagrafici di un cliente all'interno di un database. Se la jtextfiled rimane vuota o il codice errato, attraverso il medoto focuslost faccio comparire un messaggio di errore attraverso il quale informo l'utente dell'errore nella digitazione. Fin qui tutto bene, il tutto funziona. Adesso arriva il problema: all'utente offro anche la possibilità di ottenere il codice nella jtextfiled attraverso un pulsante col quale apre una tabella(in un'altro form) su qui cliccare in modo da inserire il codice. Il problema è che non appena clicco sul pulsante (questo è evento è giustamente considerato un focuslost) mi appare il messaggio di errore di cui sopra, io voglio che quest'ultimo non appaia, come posso risolvere. Posto il codice.

    codice:
     private void txtClienteFocusLost(java.awt.event.FocusEvent evt) {                                     
           
                String sql="select * from clienti where codcli=?";
              try{
              pst= con.prepareStatement(sql);
           pst.setString(1, txtCliente.getText());
             rs=pst.executeQuery();
             rs.next();
              RagSoc.setText(rs.getString(4));
              Indirizzo.setText(rs.getString(5));
              Comune.setText(rs.getString(6));
              PIva.setText(rs.getString(2));
              Prov.setText(rs.getString(8));
              Cap.setText(rs.getString(7));
              }
              catch(Exception e){
                  JOptionPane.showMessageDialog(null, "Codice cliente inesistente!");
                 
                SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            
            txtCliente.requestFocusInWindow();
                 }
                        });  
                 
                            }
        }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Devi decidere: o permetti all'utente di lasciare la casella vuota o non lo permetti. Le due cose sono in palese contrasto l'una con l'altra.

    Io mi sono scontrato con lo stesso problema quando ho sviluppato il software per l'azienda in cui lavoro. La soluzione? Nel focusLost() verifico che il valore della casella non sia vuoto (stringa vuota o null). Se, al contrario, la casella è vuota, impongo un valore "non ammissibile" (tipo, tutti zeri) e proseguo. I controlli sulla correttezza del valore vengono effettuati, ovviamente, dopo.


    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

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.