Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Premesso che la cosa non è simpatica dal punto di vista dell'utente (non è come con le date che si possono utilizzare i segnaposto per i caratteri corrispondenti al giorno/mese/anno che serve a guidare l'utente) vedersi cambiare a video un numero mentre lo sta digitando, comunque la cosa può essere fatta senza nemmeno utilizzare una JFormattedTextField, ma una banale JTextField: basta settargli un Document che sia in grado di modificare "al volo" il contenuto da inserire in modo che lo renda "formattato":


    codice:
       public class MyIntegerDocument extends PlainDocument {
          private static final NumberFormat nf = NumberFormat.getIntegerInstance( Locale.ITALIAN );
    
          @Override
          public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
             if (str == null) {
                return;
             }
    
             if ( !str.matches("\\d+") ) return;
    
             String myText = getText(0, getLength()).replaceAll("\\.","") + str;
             int myVal = Integer.parseInt( myText );
    
             myText = nf.format( myVal );
    
             super.remove(0, getLength());
             super.insertString(0, myText, a);
          }
       }

    Settando il Document di esempio in una JTextField dovresti avere il risultato cercato, ad esempio:

    codice:
    JTextField txt = new JTextField();
    txt.setDocument( new MyIntegerDocument() );
    txt.setPreferredSize( ... );

    Il Document proposto effettua anche un minimo di "validazione" dell'input: accetta solo cifre (non caratteri diversi).


    Ciao.
    Ultima modifica di LeleFT; 15-03-2018 a 17:02
    "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.