2 votes

valider le numéro de téléphone avant de l'enregistrer

J'ai ici un code pour valider un numéro de téléphone

public class ValidatePhoneNumber {

    public static void main(String[] argv) {

        String phoneNumber = "1-(80..2)-321-0361";
        System.out.println(phoneNumber.length());
        String regex = "^\\+?[0-9. ()-]{10,25}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(phoneNumber);

        if (matcher.matches()) {
            System.out.println("Phone Number Valid");
        } else {
            System.out.println("Phone Number must be in the form XXX-XXXXXXX");
        }
    }
}

Comment puis-je placer ce code dans l'ACTION SAVEBUTTON ?

private void saveButton3ActionPerformed(java.awt.event.ActionEvent evt) {...}

pour empêcher l'utilisateur d'enregistrer un format de numéro de téléphone non valide

MERCI !

4voto

FSp Points 153

Supposons que vous écriviez votre code dans une classe public class Inventory extends javax.swing.JFrame (comme vous l'avez précisé dans votre commentaire), j'écrirais un ActionListener pour gérer l'événement de clic sur le bouton

public class Inventory extends javax.swing.JFrame
    private String currPhoneNumber; // it may contains something like "1-(80..2)-321-0361"

    ...

    // this code can be *within* your class, but *outside* any method declaration
    class ButtonListener implements ActionListener {
      public void actionPerformed(ActionEvent ae) {
        System.out.println(currPhoneNumber.length());
        String regex = "^\\+?[0-9. ()-]{10,25}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(currPhoneNumber);
      }

      if (matcher.matches()) {
        System.out.println("Phone Number Valid");
      } else {
        System.out.println("Phone Number must be in the form XXX-XXXXXXX");

        // throw an exception or do something that will prevent the data to be 
        // saved (what to do here really depends on the application you are writing)
      }

    }

    ...

    private void createMyFancyInterface(...) { 
        ...
        JButton source = new JButton("Do something");
        source.addActionListener(new ButtonListener());
        ...
    }
}

Vous pouvez également (comme quelqu'un l'a souligné) utiliser des classes anonymes, ce qui réduit le problème à ce qui suit :

public class Inventory extends javax.swing.JFrame
    private String currPhoneNumber; // it may contains something like "1-(80..2)-321-0361"

    ...

    // this code can be *within* your class, but *outside* any method declaration
    class ButtonListener implements ActionListener {
      public void actionPerformed(ActionEvent ae) {
        System.out.println(currPhoneNumber.length());
        String regex = "^\\+?[0-9. ()-]{10,25}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(currPhoneNumber);
      }

      if (matcher.matches()) {
        System.out.println("Phone Number Valid");
      } else {
        System.out.println("Phone Number must be in the form XXX-XXXXXXX");

        // throw an exception or do something that will prevent the data to be 
        // saved (what to do here really depends on the application you are writing)
      }

    }

    ...

    private void createMyFancyInterface(...) { 
        ...
        JButton source = new JButton("Do something");
        source.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
             // the same code as ButtonListener.actionPerformed above
             ...
          }
        });
        ...
    }
}

0voto

John Points 2717

Voici la manière simple de procéder.

class JavaApplication extends JFrame implements ActionListener {

    JTextArea area;
    JButton button;
    JTextField box;
    JPanel panel;

    public JavaApplication19() {
        panel = new JPanel();
        panel = (JPanel) getContentPane();
        panel.setLayout(new FlowLayout());
        area = new JTextArea(26, 30);
        box = new JTextField(30);
        button = new JButton("Submit");
        button.addActionListener(this);
        panel.add(area);
        panel.add(button);
        panel.add(box);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String phoneNumber = area.getText();
        System.out.println(phoneNumber);
        String regex = "^\\+?[0-9. ()-]{10,25}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(phoneNumber);

        if (matcher.matches()) {
            box.setText("Phone Number Valid");
        } else {
            box.setText("Phone Number must be in the form XXX-XXXXXXX");
        }
    }

    public static void main(String[] args) {
        JavaApplication pad = new JavaApplication();
        pad.setSize(500, 500);
        pad.setVisible(true);
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X