我正在使用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);
。有没有其他方法可以验证这两个文本字段?