Возвращение JTextField для редактирования после диалогового окна с предупреждением - PullRequest
0 голосов
/ 04 августа 2010

В моем приложении у меня есть JTextField, который позволяет пользователю только заполнять его вводом, отформатированным определенным образом. У меня есть метод, который проверяет, является ли ввод в поле допустимым, и если нет, он отображает диалоговое окно. После того, как это произойдет, я бы хотел, чтобы фокус вернулся к текстовому полю, чтобы пользователь мог исправить ошибку и ввести соответствующий форматированный ввод. Я пытался сделать это, имея JTextField call requestFocus () на себе, но это, кажется, только половина работы. JTextField отображает мигающий курсор, но я не могу ввести текст, пока я снова не нажму на текстовое поле. Есть ли другой метод, который мне нужно вызвать? Я не смог найти ничего другого в документации.

1 Ответ

1 голос
/ 05 августа 2010

Это не совсем то решение, о котором вы просили, но вы можете взглянуть на javax.swing.InputVerifier.Этот объект позволяет вам проверять ввод в поле и предотвращать удаление фокуса от него, если формат неправильный.Я не думаю, что это позволило бы вам открыть диалоговое окно с объяснением ошибки (хотя это может быть - попробуйте), но это, безусловно, позволило бы вам поместить сообщение в «область сообщений».

Что вы делаете, это устанавливаете InputVerifier на JComponent, заставляете его проверять содержание;если это не так, то JComponent не освободит фокус (и может написать сообщение об ошибке).

...