У меня есть 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();
}
}
});
}
}
Используйте 'java.text.Format' вместо' MaskFormatter' (см [ этот вопрос] (http://stackoverflow.com/a/13424140/1076463)), и проблема исчезнет. – Robin
@Robin Ну, спасибо, позвольте мне заглянуть в него, на данный момент я использовал ответ ниже – JWizard