JFrameに2つのテキストフィールドがあり、textfield1からフォーカスが失われたときにtextfield1のデータを検証したいと思います。そのため、このメソッドをFocusListener
使用して使用しました。これにより、フォーカスがtextfield1に戻ります。textfield1以外のJFrameウィンドウ内のコンポーネントをクリックすると正常に機能しますが、JFrameウィンドウ外の任意の場所をクリックすると、が2回呼び出され、フォーカスがtextfield2に移動しますが、フォーカスはtextfield1のままになります。showMessageDialog()
FocusLost()
showMessageDialog()
@Override
public void focusGained(FocusEvent e) {}
@Override
public void focusLost(FocusEvent e) {
boolean show = false;
String theRegex = "[0-9]";
Pattern checkRegex = Pattern.compile(theRegex);
Matcher regexMatcher = checkRegex.matcher( MemberID );
while ( !regexMatcher.find() && show==false){
JOptionPane.showMessageDialog(null,"Please enter numbers","Validation Error",JOptionPane.ERROR_MESSAGE);
MemberID_Text.requestFocusInWindow();
MemberID_Text.selectAll();
show = true;
}
}