私は2つのJTextFieldsを持っています:
JTextField txtJobType, txtPriorityCode;
これは私が必要とする機能です:
ユーザーがtxtJobTypeに「administration」と入力してタブを押す(またはクリックする)と、エラーチェックが実行され、フィールドが空かどうか、または入力されたテキストがデータベースに存在するかどうかが確認されます。私がそれをした方法は次のとおりです。
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のままにすると、コードはフォーカスをjobtypeに戻そうとしますが、その時点ではpriorityも空白であるため、jobtypeからフォーカスを取り戻そうとし、この出力になります。 :
PriorityCode Focus Lost
JobType Focus Lost
PriorityCode Focus Lost
JobType Focus Lost
少なくとも他の10個のテキストフィールドに対してこれを実行する必要があるため、この動作を実装する方法についてのヘルプはありがたいです。
ありがとう!