目前我使用這個代碼,但它不能正常工作,如果我刪除了1或2或3位出17,但成功的圖標仍然可見所有無效的JTextField。只有13或17位有效,除非(13和17)
@Override
public void keyReleased(KeyEvent e) {
if(Strings.isNullOrEmpty(txtVID.getText())){
lblIDValidation.setIcon(null);
isVIDValid= false;
}
}
@Override
public void keyPressed(KeyEvent e) {
if(txtVID.getText().length()==16 || txtVID.getText().length()==12 || txtVID.getText().length()==17){
lblIDValidation.setIcon(createImageIcon(CommonUtil.success));
isVIDValid= true;
return;
}
lblIDValidation.setIcon(createImageIcon(CommonUtil.danger));
isVIDValid= false;
}
像上所述受試者每一個其他的問題,使用一個'DocumentFilter',參見[實施文檔濾波器](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#過濾器)和[DocumentFilter示例](http://www.jroller.com/dpmihai/entry/documentfilter)以獲得更多示例 – MadProgrammer
或者,如果您希望監視字段的更改,請使用「DocumentListener」,請參閱[Listening for Changes on一個文檔](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#doclisteners)瞭解更多詳情。無論如何,'KeyListener'是一個糟糕的選擇(通常,但特別是對於文本組件) – MadProgrammer
這個問題和內容描述得很差。參見[mcve] –