Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// partage de liens //// une carte des membres//// (apéros) codelab


#1 2017-12-17 01:18:05 utilisation de selectInput()

Jipé
nouveau membre
Date d'inscription: 2017-12-17
Messages: 3

utilisation de selectInput()



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

 

#2 2017-12-17 10:21:32 Re : utilisation de selectInput()

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 790

Re: utilisation de selectInput()



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

 

#3 2017-12-17 13:08:57 Re : utilisation de selectInput()

Jipé
nouveau membre
Date d'inscription: 2017-12-17
Messages: 3

Re: utilisation de selectInput()



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

 

#4 2017-12-17 21:50:34 Re : utilisation de selectInput()

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 790

Re: utilisation de selectInput()



Oui, je sais j'ai expérimenté cela et je ne trouve pas d'explication.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2018