Java swing形式的必填文本字段

时间:2019-05-02 11:54:26

标签: java swing jframe requiredfieldvalidator

制作一个允许用户更新编辑和从表单中删除客户详细信息的表单,有没有办法使用格式化的文本字段或任何代码来简单地验证必填字段?

1 个答案:

答案 0 :(得分:0)

不是开箱即用的。这全取决于您在验证后要执行的操作,例如显示一条消息或将字段背景设为红色,...

但是最简单的方法是创建一个验证方法,在该方法中您可以处理所有验证,并从与组件连接的侦听器和可能的按钮中随意调用validate方法。

基本样本:

private void createForm(){
  ...

  textField1.getDocument().addDocumentListener(new DocumentListener() {
    public void changedUpdate(DocumentEvent e) {
      validate();
    }
    public void removeUpdate(DocumentEvent e) {
      validate();
    }
    public void insertUpdate(DocumentEvent e) {
      validate();
    }
  });

  JButton button = new JButton("Next");
  button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
      boolean valid = validate();

      if(valid) {
        next();
      }
    }
  });

  ...
}


private boolean validate(){
  StringBuilder errorText = new StringBuilder();

  if(textField1.getText().length() == 0){
    errorText.append("Textfield 1 is mandatory\n");
    field1.setBackground(Color.red);
  }

  if(textField2.getText().length() == 0){
    errorText.append("Textfield 2 is mandatory");
    field2.setBackground(Color.red);
  }

  // Show the errorText in a message box, or in a label, or ...

  return errorText.lenght() == 0;
}