Bonsoir à tous,
Je n'arrive pas à utiliser correctement selectInput.
- comment mettre dans une variable de type String le nom du fichier (et son chemin de répertoire) pour pouvoir l'utiliser ensuite
- comment suspendre l'exécution du code tant qu'on n'a pas choisi un fichier ?
Voici mon programme :
citation :
String Nomfichier;
void setup() {
selectInput("choisis un fichier", "fileSelected");
println("coucou");
println(Nomfichier);
}
void fileSelected(File selection) {
if (selection == null) {
println("la fenetre a été fermée ou bien l'utilisateur a annulé");
} else {
Nomfichier = selection.getAbsolutePath();
println("fichier choisi :" + selection.getAbsolutePath());
}
}
lorsque je lance le programme,"coucou" et Nomfichier (qui prend la valeur null) s'affichent alors que je n'ai pas encore choisi le fichier...
comment faire ?
merci d'avance
Dernière modification par Jipé (2017-12-17 01:18:37)
Hors ligne
Bonjour,
Il suffit de réaliser une boucle qui se termine quand la valeur change. Cependant, il y a quelques comportements mystérieux. Voici une proposition :
citation :
String nomFichier;
void setup() {
size(800, 600);
nomFichier ="Aucun";
}
void draw() {
if (nomFichier.equals("Aucun")) {
selectInput("Choisis un fichier", "fileSelected");
while (nomFichier.equals("Aucun") || nomFichier.equals("Cancel")) {
if (nomFichier.equals("Cancel")) {
nomFichier = "Aucun";
selectInput("Choisis un fichier", "fileSelected");
}
println(nomFichier);
}
}
println("OK");
}
void fileSelected(File selection) {
if (selection == null) {
println("La fenetre a été fermée ou bien l'utilisateur a annulé.");
nomFichier = "Cancel";
} else {
println("User selected " + selection.getAbsolutePath());
nomFichier = selection.getAbsolutePath();
}
}
Dernière modification par Mushussu (2017-12-17 10:22:34)
Hors ligne
Bonjour,
merci pour la réponse !
ça marche effectivement, mais j'ai réussi à éliminer quelques comportements mystérieux en mettant la boucle dans setup().
par contre j'ai du laisser un print(); dans la boucle car si je l'enlève, ça ne fonctionne pas...
citation :
String nomFichier;
int truc=0;
void setup() {
size(800, 600);
nomFichier ="Aucun";
println(nomFichier);
if (nomFichier.equals("Aucun")) {
selectInput("Choisis un fichier", "fileSelected");
while (nomFichier.equals("Aucun") || nomFichier.equals("Cancel")) {
if (nomFichier.equals("Cancel")) {
nomFichier = "Aucun";
selectInput("Choisis un fichier", "fileSelected");
}
print();
}
}
println();
println(nomFichier);
}
void draw() {
println("c'est fini");
}
void fileSelected(File selection) {
if (selection == null) {
println("La fenetre a été fermée ou bien l'utilisateur a annulé.");
nomFichier = "Cancel";
} else {
// println("User selected " + selection.getAbsolutePath());
}
nomFichier = selection.getAbsolutePath();
}
Dernière modification par Jipé (2017-12-17 16:40:15)
Hors ligne
Oui, je sais j'ai expérimenté cela et je ne trouve pas d'explication.
Hors ligne