如题,我在运行的时候有个JTextField定义了一个focusLost Event, 验证失败会弹出一个错误提示框。可是关闭窗口的时候也会调用,就会出现输入一个非法数据,接着关闭窗口,错误仍然会报出来。请问该如何解决呢?

解决方案 »

  1.   

    情况是这样:一个JScrollPane,里面有四个JPanel,某个JPanel里面有个JTextField定义了一个focusLost方法,该方法的内容如下:
    private void CNTFieldFocusLost(java.awt.event.FocusEvent evt) {                                               
            try {
                if (!evt.isTemporary()) {
                    if (cNTextField.isEditable() && cNTextField.getText().trim().length() != 2) {
                        PopupConfirm.alert(this, "invalidNumber");
                        cNTextField.requestFocus();
                        return;
                    }
                    String fName = getNameFromTable(this);
                    if (fName != null && !fName.equals("")) {
                        fNameValuejLabel.setText(fName);
                    } else {
                        fNameValuejLabel.setText("");
                        PopupConfirm.alert(this, "invalidNumber");
                        cNTextField.requestFocus();
                        return;
                    }
                    eMPanel = (eMPanel) lpFrame.geteMPanel();
                    errorStr = this.eMPanel.getErrorMessageTextArea().getText();
                    if (!CommonValidation.checkInputStyle(this.cNTextField.getText(), CommonValidation.CLEANNO)) {
                        this.dAErrorLabel.setText("*");
                        if (errorStr.indexOf("DCNoFormat") == -1) {
                            this.eMPanel.getErrorMessageTextArea().setText("DCNoFormat") + errorStr);
                        }
                    } else {
                        this.dAErrorLabel.setText(" ");
                        if (errorStr.indexOf("DCNoFormat") != -1) {
                            this.eMPanel.getErrorMessageTextArea().setText("DCNoFormat", ""));
                        }
                    }
                }
            } catch (Exception ex) {
            }
    }现在我要是在这个控件里输入一个非法的值,点击关闭整个窗口,就会蹦出来一个错误信息。
      

  2.   

    或者这么问吧:关闭窗口,是不是会调用该窗口内所有控件的focusLost?