Ciao a tutti.
Devo gestire una maschera di inserimento di numeri decimali. Ecco cosa ho fatto. In base alla lunghezza del campo a db creo un format in modo dinamico:
Non ho problemi nel salvare valori che rientrino nel formato specificato. Se ad esempio è ###.## posso anche salvare 23.32.. Il problema nasce quando lo devo visualizzare dopo aver fatto la query. Il Mask Formatter si aspetta le tre cifre di parte intera e rifiuta il valore. Sapete se c'è un modo per dire al formatter che le cifre sono opzionali?codice:int lunghezza = lunghezzaCampo; String format=""; for(int i=0;i<=lunghezza;i++){ if(i!=lunghezza-decimali){ format += "#"; } else{ format+="."; } } try{ JFormattedTextField numDec = new JFormattedTextField(new MaskFormatter(format)); numDec.setColumns(lunghezza); /* if(!attuale.isValoriUnici() & attuale.isIncrementante()) numDec.setText("1");*/ numDec.setEditable(false); numDec.setFocusLostBehavior(JFormattedTextField.COMMIT); textField.add(numDec); }catch(Exception th){th.printStackTrace();}
In alternativa, sapreste indicarmi che soluzione adottare? Ho provato ad utilizzare un DecimalFormat ma non riesco a capire come bloccare il numero di caratteri inseriti nel JFormattedTextField e come evitare l'inserimento di caratteri che non siano numeri..
Spero mi possiate aiutare...Grazie!
Albert

Rispondi quotando