2011-12-26 2 views
5

Sono un principiante in Java e NetBeans. Sto cercando di creare un programma semplice in cui si introducono 2 numeri e la loro somma viene divisa per due. Tuttavia, sto usando JFormattedTExtField s e non so come personalizzare l'input consentito in loro. Fondamentalmente sto cercando di scoprire come:Come impostare jFormattedTextField in modo che consenta solo 2 numeri?

  • consentire solo numeri da inserire nel JFormmatedTextField;
  • Consentire solo una certa quantità di numeri;
+1

può essere avete sguardo JSpinner troppo, – mKorbel

risposta

9

È possibile utilizzare un NumberFormat e specificare il numero massimo di cifre integer con setMaximumIntegerDigits.

Ecco un bel article.

Fondamentalmente si può fare qualcosa di simile:

NumberFormat f = NumberFormat.getNumberInstance(); 
f.setMaximumIntegerDigits(maxDigitsAmount); 
JFormattedTextField field = new JFormattedTextField(f); 

Il Format dovrebbe garantire che la stringa inserita soddisfare il formato. Ad ogni modo, anche se viene fornito un numero, il campo di testo lo memorizzerà come una stringa. Quindi, se avete bisogno della vostra Integer originale è necessario ricostruirla come @noise suggerito:

Integer i = Integer.toString(field.getText()); 
+0

Grazie! Oh e un'altra cosa. Se qualcuno può dirmi come impostare il testo di un campo di testo in un int? Esempio, ho 2 ints (I valori inseriti nelle 2 caselle di testo) e un rezult int, che è uguale alla somma dei 2 ints. Se chiamo jTextField1.setText (rezult) richiede una stringa invece di int. Qualsiasi aiuto? – Bugster

+1

usa 'Integer.toString (int)' –

+0

Grazie mille ragazzi. L'ho quasi risolto, tranne quando chiamo JFormattedTextField field = new JFormattedTextField (f); mi dà un errore "Impossibile trovare il simbolo JFormattedTextField". Qualche idea? – Bugster