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

    Controllo multiplo JTextField

    salve ragazzi sto realizzando un' applicazione desktop e mi trovo davanti a questo problema, ho delle maschere tipo questa

    http://imageshack.us/photo/my-images...magineoge.png/

    adesso devo eseguire tutti i controlli del caso tipo

    1- non lasciare il nome in bianco
    2- non lasciare il cognome in bianco

    ecc ecc

    quindi dovrei effettuare molti controlli ,non avendo tanta esperienza su queste cose risolverei il problema facendo così:

    nel listener del comando inserisci

    codice:
    buttonInserisci.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				
    		if(fieldNome.getText().equals(""))
                      //Lancio errore
    				
    	}
    });
    in questa maniera dovrei fare un sacco di if c'è un modo più rapido ed efficente per effettuare questo tipo di conntrolli

    Grazie

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

    Re: Controllo multiplo JTextField

    Originariamente inviato da bobby_fire
    in questa maniera dovrei fare un sacco di if c'è un modo più rapido ed efficente per effettuare questo tipo di conntrolli
    Visto che sono tutti componenti di testo potresti inserirli in un array e poi ciclare questo al click del pulsante:

    codice:
    JTextComponent[] componenti= {nomeTF, cognomeTF, datanascitaTF ecc ecc};
    for (JTextComponent c : componenti) {
        if (c.getText().trim().length() == 0) {
            ERRORE!
        }
    }
    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 L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Controllo multiplo JTextField

    Originariamente inviato da bobby_fire
    in questa maniera dovrei fare un sacco di if c'è un modo più rapido ed efficente per effettuare questo tipo di conntrolli
    Di "serie" no, non c'è nulla nel framework standard per semplificare questo tipo di controlli.

    Quello che puoi fare tu è incapsulare in una tua classe la logica dei controlli e di gestione degli errori.

    Tanto per essere chiari, si potrebbe arrivare a scrivere in quel actionPerformed qualcosa del tipo:

    codice:
    ValidazioniCampi vc = new ValidazioniCampi();
    vc.controllaCampoObbligatorio(textField1);
    vc.controllaCampoNumericoObbligatorio(textField2);
    ....
    if (vc.campiValidi()) {
        //....tutto ok
    } else {
        vc.visualizzaErrori();
    }
    I nomi della classe e dei metodi sono fittizi, si possono fare tutte le varianti che si vogliono. Ma in questo modo gli errori si potrebbero "accumulare" all'interno dell'oggetto ValidazioniCampi, per comporre un messaggio di errore (da mostrare poi con il visualizzaErrori() ) o magari per segnarli in rosso o altro ancora.


    Un'altra architettura, più complessa, sarebbe quella di estendere i vari componenti per fornire loro lo stato e il comportamento adatto per gestire queste validazioni. In pratica non usi più direttamente JTextField, JTextArea, ecc... ma definisci delle sottoclassi es. MyTextField, MyTextArea (nomi qui sparati, ovviamente ).
    Ognuna di queste classi potrebbe contenere dello "stato" aggiuntivo che dice se il campo è obbligatorio o meno, il formato del campo (es. minimo x caratteri o se numerico).

    Per unificare la gestione, tutte queste sottoclassi potrebbero implementare una tua interfaccia comune es. CampoValidabile.
    Poi potresti tenerti una lista di tutti i CampoValidabile oppure a runtime potresti andarli a cercare ricorsivamente partendo da un contenitore base.

    Quindi per ogni CampoValidabile potresti invocare il suo valida() che verifica se il campo è ok o no. E poi magari accumulare gli errori da un'altra parte (in modo similare alla prima architettura descritta).


    Tutto questo solo per farti capire che l'architettura per gestire queste validazioni o la fai sfruttando una libreria esterna (non so ... magari per Swing esistono già) oppure la implementi tu ma è a carico tuo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.