如何使用Netbeans的Validation API进行验证

时间:2014-04-14 01:18:58

标签: java swing netbeans validation

我正在使用Netbeans Validation API。文档可以在此链接中找到。我试图验证一堆文本字段,所以我有一个实现DocumentListener接口的类,然后是另一个视图类中的swing组件。

以下是另一个类中的代码段

@Override
public void changedUpdate(DocumentEvent de) {
        checkValidation();
    }
@Override
public void insertUpdate(DocumentEvent de) {
        checkValidation();
}
@Override
public void removeUpdate(DocumentEvent de) {
        checkValidation();
}
private void checkValidation() {
    Problem validateAll = l.getGroup().performValidation();
        if (validateAll.isFatal()) {
            l.getLogin().setEnabled(false);
        } else {
            l.getLogin().setEnabled(true);
        }

And here is the snippet of the view

username = new JTextField(); username.setName("Username"); username.getDocument().addDocumentListener(lc); username.setPreferredSize(new Dimension(12, 35)); panel.add(username, "7, 6, 5, 1, fill, fill"); username.setColumns(10); JLabel lblPassword = new JLabel("Password:"); panel.add(lblPassword, "4, 10"); password = new JTextField(); password.setName("Password"); password.getDocument().addDocumentListener(lc); password.setPreferredSize(new Dimension(12, 35)); panel.add(password, "7, 10, 5, 1, fill, default"); password.setColumns(10); login = new JButton("Login"); login.setEnabled(false); login.addActionListener(lc); panel.add(login, "7, 14, 2, 1, fill, default"); JButton forgotLogin = new JButton("Forgot Login Details"); forgotLogin.setActionCommand("Forgot Login"); forgotLogin.addActionListener(lc); forgotLogin.setSize(new Dimension(150, 150)); panel.add(forgotLogin, "10, 14, fill, default"); ValidationPanel xpanel = new ValidationPanel(); xpanel.setInnerComponent(panel); group = xpanel.getValidationGroup(); group.add(username, StringValidators.REQUIRE_NON_EMPTY_STRING, StringValidators.NO_WHITESPACE); group.add(password, StringValidators.REQUIRE_NON_EMPTY_STRING,StringValidators.NO_WHITESPACE); contentPane.add(xpanel, BorderLayout.CENTER);
username = new JTextField(); username.setName("Username"); username.getDocument().addDocumentListener(lc); username.setPreferredSize(new Dimension(12, 35)); panel.add(username, "7, 6, 5, 1, fill, fill"); username.setColumns(10); JLabel lblPassword = new JLabel("Password:"); panel.add(lblPassword, "4, 10"); password = new JTextField(); password.setName("Password"); password.getDocument().addDocumentListener(lc); password.setPreferredSize(new Dimension(12, 35)); panel.add(password, "7, 10, 5, 1, fill, default"); password.setColumns(10); login = new JButton("Login"); login.setEnabled(false); login.addActionListener(lc); panel.add(login, "7, 14, 2, 1, fill, default"); JButton forgotLogin = new JButton("Forgot Login Details"); forgotLogin.setActionCommand("Forgot Login"); forgotLogin.addActionListener(lc); forgotLogin.setSize(new Dimension(150, 150)); panel.add(forgotLogin, "10, 14, fill, default"); ValidationPanel xpanel = new ValidationPanel(); xpanel.setInnerComponent(panel); group = xpanel.getValidationGroup(); group.add(username, StringValidators.REQUIRE_NON_EMPTY_STRING, StringValidators.NO_WHITESPACE); group.add(password, StringValidators.REQUIRE_NON_EMPTY_STRING,StringValidators.NO_WHITESPACE); contentPane.add(xpanel, BorderLayout.CENTER);

。有没有其他方法可以验证这两个文本字段?

0 个答案:

没有答案