Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Controllo JtextField

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99

    Controllo JtextField

    Dovrei creare una sorta di form in cui inserire i dati in dei jtextfield e poi visualizzarli tramite una jtable dopo aver premuto un bottone di conferma, però devo fare un controllo dei dati inseriti in ognuno dei componenti jtextfield, cioè ad esempio inserisco un carattere in un jtextfield che deve contenere solo numeri ed il programma deve mandarmi una sorta di alert indicandomi l'errore, e deve cancellarmi il carattere,qualk1 potrebbe aiutarmi per favore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99
    Nessuno saprebbe aiutarmi?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    E' già stato trattato come argomento... io mi sono creato una classe a parte che estende JTextField e ci appiccico un Document adhoc.
    codice:
    import javax.swing.*;
    import java.util.regex.*;
    import javax.swing.text.*;
    
    /**
     *
     * @author Andrea
     */
    public class JNumberTextField extends JTextField {
        
        private class NumbersOnly extends PlainDocument {
            public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
                Pattern p = Pattern.compile("\\D*");
                Matcher m = p.matcher(str);
            
                if (str == null || m.matches()) {
                    return;
                }
                
                super.insertString(offs, str, a);
            }
        }
        
        /** Creates a new instance of JNumberTextField */
        public JNumberTextField() {
            super();
            this.setDocument(new NumbersOnly());                    
        }
        
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99
    scusami ma non ho ben capito questa parte di codice cosa fà con esattezza,l'ho provato e funziona..
    if (str == null || m.matches()) {
    return;
    }

    super.insertString(offs, str, a);

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ho usato un'espressione regolare: il pattern \D* vuol dire: "cerca tutti i caratteri che non sono digits - ossia numeri". Il matcher lo crei sulla stringa che stai per inserire nel jtextfield, quindi se il matcher ha avuto un riscontro vuol dire che il jtextfield contiene almeno un carattere che non è numerico... e non viene inserito. Al pari, non succede niente se nel JTextField non viene inserito niente. Negli altri casi, ossia quando viene inserita una cifra, si chiama il metodo della superclasse per l'inserimento e tutto finisce lì.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.