Обязательные текстовые поля в форме java swing - PullRequest
0 голосов
/ 02 мая 2019

Создание формы, которая позволяет пользователю обновлять, редактировать и удалять данные клиента из формы, есть ли способ использовать отформатированные текстовые поля или любой код для простой проверки необходимых полей?

1 Ответ

0 голосов
/ 02 мая 2019

Не из коробки. И все зависит от того, что вы хотите сделать после проверки, например, показать сообщение или сделать фон поля красным, ...

Но самым простым способом было бы создать метод validate, в котором вы обрабатываете все проверки, и вызываете метод 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;
}
...