2011-12-26 14 views
5

Jestem początkujący w Javie i NetBeans. Próbuję stworzyć prosty program, w którym wprowadzisz 2 liczby, a ich suma zostanie podzielona przez dwa. Jednak używam JFormattedTExtField s i nie wiem, jak dostosować dozwolone wejście w nich. Zasadniczo próbuję dowiedzieć się, jak:Jak ustawić opcję jFormattedTextField, aby zezwalała tylko na 2 numery?

  • Zezwalaj tylko na wprowadzanie liczb w JFormmatedTextField;
  • Zezwalaj tylko na określoną liczbę numerów;
+1

może mieć co JSpinner zbyt wygląd, – mKorbel

Odpowiedz

9

Można użyć NumberFormat i określić maksymalną liczbę cyfr całkowitych z setMaximumIntegerDigits.

Oto ładny article.

Zasadniczo można zrobić coś takiego:

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

Format powinny gwarantować, że włożona String zaspokoić formatu. W każdym razie, nawet jeśli podany jest numer, pole tekstowe zapisuje je jako ciąg. Więc jeśli potrzebujesz oryginalnego Integer trzeba odbudować go jak sugerował @noise:

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

Dzięki! Och i jeszcze jedna rzecz. Jeśli ktoś może mi powiedzieć, jak ustawić tekst pola tekstowego na int? Przykład: mam 2 ints (wartości wprowadzone w 2 polach tekstowych) i intes rezultatu, który jest równy sumie 2 int. Jeśli wywołasz jTextField1.setText (rezultatem), to prosi o ciąg zamiast int. Jakaś pomoc? – Bugster

+1

użyj 'Integer.toString (int)' –

+0

Dzięki wielu facetów. Prawie go naprawiłem, z wyjątkiem sytuacji, gdy wołam pole JFormattedTextField = new JFormattedTextField (f); daje mi błąd "Nie mogę znaleźć symbolu JFormattedTextField". Dowolny pomysł? – Bugster

Powiązane problemy