J'ai essayé d'utiliser le formateur de masque, mais ce n'est pas bon avec notre situation ici, donc j'ai trouvé cette méthode en utilisant Regex et la validation instantanée pour l'entrée de l'utilisateur.
Ce code est généré en utilisant constructeur IUG:
jFormattedTextField2 = new javax.swing.JFormattedTextField();
jFormattedTextField2.setHorizontalAlignment(jFormattedTextField2.CENTER);
jFormattedTextField2.addCaretListener(new javax.swing.event.CaretListener() {
public void caretUpdate(javax.swing.event.CaretEvent evt) {
jFormattedTextField2CaretUpdate(evt);
}
});
Ici, sur chaque mise à jour sur le terrain de l'entrée sera validée à l'aide matcher:
private void jFormattedTextField2CaretUpdate(javax.swing.event.CaretEvent evt) {
// validation happen here and the text is red if IP is invalid
final String regex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
final Pattern pattern = Pattern.compile(regex);
String ip = jFormattedTextField2.getText();
Matcher m = pattern.matcher(ip);
jFormattedTextField2.setForeground(Color.red);
if (m.matches()) {
jFormattedTextField2.setForeground(Color.black);
}
}
Apparemment, le caractère d'espace réservé ne peut être utilisé à la fin de la chaîne. Je ne peux pas trouver un moyen de contourner cela, et je supprime ma réponse incorrecte. –