IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Processing --> gestion de touches


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Par défaut Processing --> gestion de touches
    Bonjour tous le monde,

    Je suis entrain de réaliser une petite interface sous "Processing" pour récupérer des infos lié à la carte ARDUINO UNO et de quelques capteurs de température.
    J'ai réussi à récupérer les infos des capteurs, mon problème se trouve sur la gestion de mon interface graphique.
    J'ai créé une nouvelle fenêtre qui contient 2 boutons, ca c'est ok... mais le problème se situe sur la gestion des boutons :-(

    Je n'ai pas trouvé d'exemples ou d'explication pour savoir comment interagir avec ces nouveaux éléments.
    J'utilise la libraire "controlP5" (je me suis servis de ce site : Lien_ControlP5), mais je n'ai pas compris comment utilise les différentes procédures proposées.

    voici quelques bouts de code que j'ai réalisé :

    configuration des touches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void setup() 
    {
      //....
     
      //--- initialisation des objets -> touche b_Lancer et b_Arreter ---//
      // Remarque : addButton (String theName, float theValue, int theX, int theY, int theW, int theH)
      b_Lancer = controle_B.addButton("Lancer", 0, 50, 150, 50, 24);       // initialise et ajoute un Button au ControlP5 --> lancer 
      b_Arreter = controle_B.addButton("Arreter", 0, 300, 150, 50, 24);    // initialise et ajoute un Button au ControlP5 --> arrêter 
     
      //...
    évènements lié aux touches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void controlEvent(ControlEvent theEvent) 
    {
      // ???
      // je ne sais pas quoi mettre comme code dans cette partie 
     
    }
    touche en elle-même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void b_Lancer(boolean val_event)
    {
      // ???
      // ici aussi je ne sais pas quoi mettre 
      // simplement qu'avec l'évènement lié je voulais changer le 
      // background de la fenêtre 
      background(255,255,255);                 // fond fenetre en 
     
    }
    Voilà donc actuellement je suis un peu bloqué dans cette partie alors si vous avez des idées, je suis preneur de code exemple, de suggestions - idées, de docs ou site internet, etc

    En grand merci de me lire

    Amicalement le cht'y Philou

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Personnellement je n'ai pas compris ton problème ni la question, sachant que j'ai déja joué avec cet lib pour processing et que je n'ai rien remarqué de compliqué mais bon admettons.

    As tu regarder parmis tout les exemples fourni sur le site ? Surtout celui ci spécifique aux boutons ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Par défaut
    Merci Wax pour t'être penché sur mon cas désespérer

    Désolé de n'être pas un expert en Java ou en programmation sinon je ne poserai pas des question débiles

    Bon en gros, pour l'instant j'ai réalisé une fenêtre, voir ci-dessous :


    j'ai placer 2 boutons, maintenant j'aimerai si je clique sur la touche "lancer" que le font de fenêtre devienne blanc... et pour l'instant je n'y arrive pas ... ben oui pas tous intelligent...

    donc j'ai vu sur les liens que tu m'as passé Wax que nous avons 2 possibilité : 1 utilisation d'un évènement avec la méthode :

    public void controlEvent(ControlEvent theEvent) {}
    ou avec la touche-elle même
    void nom_touche(int val_event)
    sauf lorsque je mets du code à l'intérieur de ces méthodes rien ne se passe sur ma fenêtre...

    Voilà j'espère que j'ai été un peu plus précis...

    Merci à tous de me lire encore !!!

    Amicalement le cht'y Philou

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Le lien que j'ai donné avec l'exemple est exactement ce que tu cherches a faire tu devrais le copier/coller pour l'utiliser comme base.

    Sinon, postes tout ton code car c'est impossible de t'aider sans le code qui nous fera comprendre ou se situe le problème.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Par défaut
    Merci Wax pour te pencher sur mon cas,

    Comme demandé, je balance mon code dans les annexes...

    Je ne l'ai pas encore repris... mais peut-être que vous verrez une grossière erreur, n'hésitez pas à me faire vos remarques ou autres

    Enfin je vais m'y remettre aujourd'hui !!!

    Sinon encore un grand merci de me lire

    Amicalement le cht'y Philou

    PS : ce que je cherche déjà à faire c'est quand je clic sur la touche "lancer", c'est que le fond de l'écran devienne blanc
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Easy game

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b_Lancer = controle_B.addButton("b_Lancer", 0, 50, 150, 50, 24);       // initialise et ajoute un Button au ControlP5 --> lancer
    Tu dois mettre le nom du bouton en accord avec le nom de la fonction que tu veux qui soit appeler lors de l'appuye. Dans ton cas b_Lancer.

    A+
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Par défaut
    Bonjour à tous,

    et merci à toi WAX pour ton aide, Je reviens vers vous car j'ai résolu un problème (WAX tu m'as bien aider) pour en refaire un autre...
    Alors pour la touche, je peux jouer de 2 manières différentes, voici les 2 solus ci-dessous :
    Solution 1 - Fournis par le Forum et par WAX

    a initialiser comme variable général :
    a initialiser l'objet dans la fonction setup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //initialise et ajoute un Button au ControlP5 --> lancer 
    b_Lancer = controle_B.addButton("b_Lancer", 0, 50, 150, 50, 24);
    le string indiqué en argument de la méthode doit avoir le même nom que l'objet, ne sait pas pourquoi mais c'est comme

    fonction lié à la touche "b_lancer"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void b_Lancer(int val_event)
    {
      background(255,255,255);                 // fond fenetre en 
    }
    Et la fonction doit avoir le même nom que l'objet qui référence la touche (b_lancer), donc résultat : chaque fois qu'on clique sur le touche "b_lancer", le fond d'écran passe en blanc (c'est ce que je voulais --> OK)

    Solution 2 - My solus Perso

    initialiser comme variable général :
    our initialiser l'objet dans la fonction setup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // initialise et ajoute un Button au ControlP5 --> lancer 
    b_Lancer = controle_B.addButton("Lancer", 0, 50, 150, 50, 24);
    par contre ici je n'ai pas indiquer le même nom entre le nom de l'objet et le string qui va être afficher... et je n'utilise pas une méthode définie par mes soins, mais c'est dans la fonction "draw", que je teste la touche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (b_Lancer.isPressed())
    {
        background(255,255,255);                 // fond fenetre en 
    }
    La encore quand j'appuie sur la touche "lancer" le fond de la fenêtre change de couleur (passe de noir à blanc), la différence entre les 2 codes c'est au niveau du nom qui est afficher dans la fenêtre au niveau de la touche, dans la première solution, le string qui est en argument doit avoir le même que l'objet et que la fonction... ne me demander par pourquoi je n'en sais rien... mais ca marche... tant dit que pour ma solution, je peux afficher un nom différent sur la fenêtre pour la touche que le nom de l'objet créé --> nom objet pas != nom afficheé.

    Voilà, now à nouveau en difficulté car comme dit ci-dessus la gestion est correcte, mais je me trouver confronter à des nouveau soucis sur la création d'un fichier ainsi que de son écriture... Mon but est lorsque j'appuie sur le "lancer", un fichier s'ouvre pour que l'on puisse aller écrire des infos dessus... donc j'ai écris le code (en utilisant mon ami Google) et lorsque je lance mon code, ca foire au niveau de l'ouverture du fichier txt.

    Alors à nouveau je fais appel à vous, et vos connaissance de Java pour aider à me dépatouiller... Alors comme d'hab si vous avez de liens, doc, ou exemple de code je suis preneur.

    Voici mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    //------------------------------------------------------------------//
    // Nom fonction : Lancer
    // entrée - sortie --> IN : val_event
    //                 --> OUT :
    //                 --> IN/OUT :
    // Description : lié à une événement lorsqu'on clique sur la 
    //               touche "Lancer", cela doit créer un fichier ainsi 
    //               permettre l'aquistion de données 
    // Remarque : -       
    //------------------------------------------------------------------//
    public void Lancer(int val_event)
    {
      print("ca marche !!!");
      background(255,255,255);                 // fond fenetre en 
      if(fichier_data.exists())
      {
        try
        {
          FileWriter ecriture_data = new FileWriter(fichier_data, true); 
          ecriture_data.write("j'ai ecris à nouveau \n");
          ecriture_data.close();
        }
        catch (IOException ioe) 
        { 
          println("Message erreur : "+ioe.getMessage()); 
        } 
            //BufferedReader fichier  = new BufferedReader(new FileReader("monfichier.txt"));   
      }
      else
      {
     
        try
        {
           fichier_data = new File("store_data.txt");
           FileWriter ecriture_data = new FileWriter(fichier_data); 
           ecriture_data.write("j'ai ecris pour la premiere fois \n"); 
           ecriture_data.close();
        }
        catch (IOException ioe) 
        { 
           println("Message erreur : "+ioe.getMessage()); 
        } 
      }
    }
    ainsi que l'erreur fournie :


    A tout bientôt le chty Philou

Discussions similaires

  1. [SDL] Gestion des touches claviers problématique
    Par Invité4 dans le forum SDL
    Réponses: 3
    Dernier message: 13/10/2006, 21h15
  2. Gestion des touches clavier
    Par bourinator dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 18/06/2006, 16h19
  3. [GLUT] Gestion clavier, touches concurentes
    Par djfab dans le forum OpenGL
    Réponses: 9
    Dernier message: 04/05/2005, 00h25
  4. [TP]Problème dans la gestion des touches d'un tetris
    Par Guile0 dans le forum Turbo Pascal
    Réponses: 18
    Dernier message: 31/01/2005, 22h40
  5. [DirectInput] Gestion des touches en mode fenêtré
    Par Harry_polin dans le forum DirectX
    Réponses: 8
    Dernier message: 19/03/2003, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo