2012-02-24 5 views
2

я здесь код для подтверждения номера телефонаValidate номер телефона перед сохранением

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"); 
     } 
    } 
} 

Как я могу поместить этот код внутри SaveButton ДЕЙСТВИЯ?

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

запретить пользователю для сохранения формат номера телефона недействителен

СПАСИБО!

+2

Основываясь на информации, которую вы указали, сложно ответить на ваш вопрос. Но вам потребуется какой-то способ получить номер телефона из вашего действия, а затем каким-то образом утвердить или отклонить номер телефона, чтобы приложение могло его сохранить или предупредить пользователя, если есть проблема. – Bill

+0

Прошу прощения. Я новичок в java. Все, что я хочу сделать, это запретить пользователю сохранять неверный формат номера телефона. У вас есть какие-либо предложения – mix

+0

привет @mix, в случае, если вы нашли мой ответ полезным, не могли бы вы его принять? прошло уже 3 года ... :) – FSp

ответ

4

Предположим, вы пишете код в пределах класса public class Inventory extends javax.swing.JFrame (как указано в вашем комментарии), я бы написать ActionListener для обработки события кнопки нажмите кнопку

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()); 
     ... 
    } 
} 

В качестве альтернативы (как кто-то подчеркнуты) вы можете использовать анонимных классов, сводя таким образом к следующему:

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 
      ... 
      } 
     }); 
     ... 
    } 
} 
+0

Вы также можете использовать анонимный класс. – Avi

+0

Привет @FSp спасибо за ответ на мой вопрос, но я хочу уточнить, если это класса ButtonListener реализует ActionListener { общественных недействительный actionPerformed (ActionEvent п.в.) {// кода здесь .... }} следует поместить внутрь общественного класса Inventory распространяется javax.swing.JFrame и снаружи частной недействительным saveButton3ActionPerformed (java.awt.event.ActionEvent ЭВТ) {...} жаль, что я новичок в Java :( – mix

+0

@ смешайте короткий ответ на свой вопрос: да. Я представил более подробный пример, надеюсь, что он уточнит – FSp

0

Вот простой способ сделать это.

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); 
    } 
} 
+0

Здравствуйте, @john, спасибо, что предоставили мне ответ. Я просто хочу уточнить, кажется, что я новичок в java, я не понимаю. код, который вы показали выше, должен ли я помещать их внутри private void saveButton3ActionPerformed (java.awt.event.ActionEvent evt) {...} – mix

Смежные вопросы