У меня есть 2 JTextFields:
JTextField txtJobType, txtPriorityCode;
Это функционал, который мне нужен:
Когда пользователь вводит «администрирование» в txtJobType и нажимает вкладку (или щелкает мышью), выполняется проверка ошибок, чтобы увидеть, пусто ли поле или существует ли введенный текст в базе данных. Как я это сделал:
private void txtJobTypeFocusLost(java.awt.event.FocusEvent evt) {
System.out.println("JobType Focus Lost");
if (!checkFieldExists(txtJobType.getText(), "jobType", "jobCode",
JobType.class) || txtJobType.getText().isEmpty()) {
txtJobType.requestFocusInWindow();
txtJobType.selectAll();
} else {
}
}
Итак, если поле не существует или текст пуст, верните фокус на txtJobType и выделите весь текст (если есть)
Это работает без проблем. Однако у меня есть поле txtPriorityCode, которое должно вести себя точно так же. Так я и сделал:
private void txtPriorityCodeFocusLost(java.awt.event.FocusEvent evt) {
System.out.println("PriorityCode Focus Lost");
if (!checkFieldExists(txtPriorityCode.getText(), "priority", "priorityCode",
Priority.class) || txtPriorityCode.getText().isEmpty()) {
txtPriorityCode.requestFocusInWindow();
txtPriorityCode.selectAll();
}
}
Вот здесь и начинается проблема: если пользователь оставляет jobType и вкладки переходит в Priority, тогда код пытается вернуть фокус обратно на тип задания, но, поскольку в этот момент приоритет также пуст, он попытается вернуть фокус обратно из типа задания, что приведет к этому результату. :
PriorityCode Focus Lost
JobType Focus Lost
PriorityCode Focus Lost
JobType Focus Lost
Любая помощь в том, как я могу реализовать это поведение, приветствуется, так как мне нужно сделать это как минимум для 10 других текстовых полей.
Спасибо!
public boolean verify(JComponent input) {
— это то место, где я бы сделал егоpublic boolean verify(JComponent input , String tableField, Class entityClass)
, но как мне передать разные классы для каждого текстового поля в конструкторе? 21.08.2012