Bonjour à tous,
j'ai déjà jetté un gros coup d'oeil à ce qu'il était possible de faire avec matches(), mais mon problème est spécial...
J'ai un textField qui contient normalement une String (chemin vers une application externe, du type C:\Loxane\Way Pro\waypro.exe, qu'on peut lancer depuis la feuille principale grâce à un bouton.
Au moment de fermer la feuille de paramétrage (options), je teste cette String pour voir si l'utilisateur a bien sélectionné l'exécutable (pour faire pro et pour eviter que des petits malins ne mettent à la place C:\windows\sol.exe pour lancer le solitaire, au lieu du programme de cartographie GPS comme c'est prévu. Aussi, j'utilise :
public class Verif {

//Vérification du chemin pour la cartographie, dans la feuille d'options
public static boolean isCarto(String s) {
boolean isValid = true;
//Le textField peut être vide ou contenir "waypro.exe"
//Au départ, j'avais essayé aussi juste avec s.matches"waypro.exe"
//J'ai aussi essayé avec les symboles [blabla] ou "^waypro.exe$"
if (!((s.matches("C:\\Loxane\\Way Pro\\waypro.exe")) || (s.trim().equals("")))) {
JOptionPane.showMessageDialog(null,
"Veuillez saisir un chemin ou un fichier exécutable correct.\nMerci.",
"Erreur de saisie du chemin pour la cartographie",
JOptionPane.OK_OPTION);
return false;}

return isValid;}
}
et le problème c'est qu'il n'accepte pas le chemin complet, mais juste "waypro.exe", ce qui est très bête.
Bref, si vous avez une idée avec matches(), plutôt que de faire une moulinette ou un substring qui partirai de la droite pour remonter vers la gauche en comptant 10 caractères, n'hésitez pas.
Merci à vous ! Cédric.