2015-05-11 2 views
0

У меня есть JFormattedTextField, который предназначен для ввода пользователем номера телефона. Мой номер телефона принимает следующий формат: +### ###-###-###. Я хочу проверить пустую строку, прежде чем я сохраню номер телефона в базе данных. Проблема в том, что я не могу проверить/определить, пусто ли поле. Когда я печатаю field.getText().length(), он выводит 16, что означает, что некоторые символы уже находятся в поле. Как проверить, ввел ли пользователь несколько символов?Как мы тестируем, если JFormattedTextField пуст?

Ниже мой код:

public class JTextFiledDemo { 

private JFrame frame; 

JTextFiledDemo() throws ParseException { 
    frame = new JFrame(); 
    frame.setVisible(true); 
    frame.setSize(300, 300); 
    frame.setLayout(new GridLayout(4, 1)); 
    frame.setLocationRelativeTo(null); 
    iniGui(); 
} 

private void iniGui() throws ParseException { 

    JButton login = new JButton("Test"); 
    JFormattedTextField phone = new JFormattedTextField(new MaskFormatter(
      "+### ###-###-###")); 

    frame.add(phone); 
    frame.add(login); 
    frame.pack(); 

    login.addActionListener((ActionEvent) -> { 

     JOptionPane.showMessageDialog(frame, "The length of input is :" 
       + phone.getText().length()); 

    }); 

} 

public static void main(String[] args) { 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       JTextFiledDemo tf = new JTextFiledDemo(); 
      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 
     } 

    } 
+2

Используйте 'java.text.Format' вместо' MaskFormatter' (см [ этот вопрос] (http://stackoverflow.com/a/13424140/1076463)), и проблема исчезнет. – Robin

+0

@Robin Ну, спасибо, позвольте мне заглянуть в него, на данный момент я использовал ответ ниже – JWizard

ответ

2

Вы можете использовали метод isEditValid() для проверки содержимого

final boolean editValid = phone.isEditValid(); 
showMessageDialog(frame, "The length of input is :" + phone.getText().length() + ". It is " + (editValid ? "" : "not ") + "valid!"); 
+0

Ну, это то, что я искал - пусть это реализует. – JWizard

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