Я создаю симулятор банкомата с одним JTextArea, который будет отображать все взаимодействие с пользователем. Я хочу, чтобы пользователь ввел пин-код, и он показывает его в звездочках JtextArea под приветственным сообщением. Как мне отображать звездочки, читая их как реальные числа в моем коде, чтобы я мог проверить своего пользователя? Я также хочу, чтобы JTextArea динамически обновлялся с другим текстом по мере того, как пользователь переходит от одного шага к другому. Например, он будет перезаписывать текст для ввода булавки с текстом о выводе средств и т. д. Это будет продолжаться, и пользователь увидит обновление экрана с соответствующей информацией. Приветствуются любые ресурсы или помощь о том, как я могу манипулировать JtextArea, или если кто-то может предложить лучший подход для достижения этой цели.
Динамическое обновление JTextArea и чтение из него определенного текста
Ответы (2)
Если вы пытаетесь использовать JTextArea, как если бы это была консоль, где она взаимодействует с пользователем построчно и не отображает PIN-коды, это может стать немного сложнее. Одним из возможных решений является использование DocumentFilter в документе JTextArea (сначала приведение к PlainDocument) и пропуск всего введенного текста, если ваша программа не находится в режиме получения PIN-кода (возможно, у вас будет логическая переменная для this), и в этой ситуации вы бы сохранили текст, введенный в самой программе, но отображали только «*» через DocumentFilter. Это может быть излишним, но это может сработать.
Я думаю, что экземпляр JPasswordField
может быть тем, что вам нужно.
Для поставить звездочки,
passwordField.setEchoChar('*');
И для восстановления PIN-кода:
char[] pin = passwordField.getPassword();
При таком подходе вам понадобятся некоторые другие компоненты, такие как JLabel
для отображения информации пользователю, приветственное сообщение.
JTextArea
? - person Greg Kopff   schedule 04.05.2012