Ограничение и форматирование JTextfield Java

Возможный дубликат:
Ограничение и форматирование JTextfield

У меня есть JTextfield, где пользователь вводит «номер социального страхования». SSN состоит из 9 цифр и 2 дефисов, всего 11 символов.

Как ограничить JTextField до 11 символов, а также иметь 2 тире в текстовом поле на 4-й и 7-й позициях из 11 символов?

у меня есть одна мысль: я использую оператор IF, в котором говорится, что soc (который будет вводом в Jtextfield) должен быть больше или равен 000000001 и меньше или равен 999999999, а затем, как только это будет определено. Могу ли я использовать подстроку для позиций 0-2, назначить это переменной, чем объединить ее с «-», затем создать еще одну подстроку для позиций 3-4 и объединить ее с предыдущими переменными и добавить последний «-», а затем закончить Вход.

это возможно? это имеет логический смысл?


person nico11    schedule 21.11.2011    source источник
comment
JFormattedTextField   -  person PeterMmm    schedule 21.11.2011
comment
Ответ на ваш последний вопрос вполне приемлем (и верен). В чем проблема? Голосование за закрытие этого вопроса как точной копии.   -  person mre    schedule 21.11.2011


Ответы (1)


JFormattedTextField может показаться полезным, но поверьте мне, это не так. Это слишком сложно и загадочно, чтобы попытаться правильно настроить.

Вместо этого рассмотрите возможность расширения Document. Переопределяя insertString, replace и delete, вы можете контролировать, какие символы и где вводятся.

person BenCole    schedule 21.11.2011
comment
JFormattedTextField может показаться полезным, но поверьте мне, это не так. Это слишком сложно и загадочно, чтобы попытаться правильно настроить...Вы не можете быть серьезными.. - person mre; 21.11.2011
comment
Полностью. JFormattedTextField, в частности, с форматтером маски, (по моему опыту) сложно настроить приемлемым способом. Может быть, это только я, но Documents и DocumentFilters - гораздо более легкий путь к той же самой цели. - person BenCole; 21.11.2011
comment
Более конкретная проблема, с которой я столкнулся, - это возможность удалить весь текст из JFormattedTextField. Я никогда не мог заставить его вести себя должным образом в этом случае. - person BenCole; 21.11.2011
comment
@Ben: Ваша позиция не полностью необоснованна, а является цитированием или два могут быть информативными. - person trashgod; 22.11.2011
comment
@trashgod Спасибо за помощь! С этого момента я обязательно буду включать источники. :) - person BenCole; 22.11.2011
comment
-1 просто ошибается в этой общности: по общему признанию, не самый простой ребенок в блоке, но определенно управляемый. В конце концов, некоторый анализ должен быть выполнен где-то ... заново изобретать колесо - нежизнеспособный вариант, ИМО - person kleopatra; 22.11.2011
comment
@trashgod спасибо за ссылку (за нее тоже проголосовали ‹g›) - person kleopatra; 22.11.2011