Annonce

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


#1 2014-05-13 20:23:44 HELP URGENT SVP Créer un lien entre fenêtre et bouton

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

HELP URGENT SVP Créer un lien entre fenêtre et bouton



Salut!

C'est un peu urgent, mais en même temps j'ai essayé toutes les choses possibles mais je n'y arrive pas.
J'ai créer un bouton et une nouvelle fenêtre avec ControlP5 cependant, je souhaiterais que la fenêtre apparaisse lorsque je clique sur le bouton.

Je me suis basé sur ce code pour créer la fenêtre http://www.sojamo.de/libraries/controlP … 5frame.pde

Je souhaite faire si je clique sur le bouton; alors dans controlP5 Event, je met option=true. Ensuite, j'ai posé f.hide()
dans

ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {

Cependant, j'ai essayer de placer partout if(option==true)==> f.show() mais soit on me dit f n'existe pas soit il y a une erreur mais donc je ne sais pas comment faire.

Pouvez-vous me dire où je dois placer ces lignes s'il vous plaît c'est très important, c'est pour le projet d'ISN et j'aurais besoin d'une réponse à tout prix!!

Merci  beaucoup d'avance

Hors ligne

 

#2 2014-05-14 07:50:45 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

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

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



Bonjour,

Il faut mettre f comme une variable globale pour pouvoir agir dessus :

/**
 * ControlP5 Controlframe
 * with controlP5 2.0 all java.awt dependencies have been removed
 * as a consequence the option to display controllers in a separate
 * window had to be removed as well. 
 * this example shows you how to create a java.awt.frame and use controlP5
 *
 * by Andreas Schlegel, 2012
 * www.sojamo.de/libraries/controlp5
 *
 */

import java.awt.Frame;
import java.awt.BorderLayout;
import controlP5.*;

private ControlP5 cp5;

ControlFrame cf;
Frame f;

int def;

void setup() {
  size(400, 400);
  cp5 = new ControlP5(this);

  // by calling function addControlFrame() a
  // new frame is created and an instance of class
  // ControlFrame is instanziated.
  cf = addControlFrame("extra", 200, 200);

  // add Controllers to the 'extra' Frame inside 
  // the ControlFrame class setup() method below.
  cp5.addToggle("fenetre")
    .setPosition(40, 100)
      .setSize(50, 20)
        ;
}

void draw() {
  background(def);
}

ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
  f = new Frame(theName);
  ControlFrame p = new ControlFrame(this, theWidth, theHeight);
  f.add(p);
  p.init();
  f.setTitle(theName);
  f.setSize(p.w, p.h);
  f.setLocation(100, 100);
  f.setResizable(false);
  f.setVisible(false);
  return p;
}

void fenetre(boolean e) {
  f.setVisible(e);
}

// the ControlFrame class extends PApplet, so we 
// are creating a new processing applet inside a
// new frame with a controlP5 object loaded
public class ControlFrame extends PApplet {

  int w, h;

  int abc = 100;

  public void setup() {
    size(w, h);
    frameRate(25);
    cp5 = new ControlP5(this);
    cp5.addSlider("abc").setRange(0, 255).setPosition(10, 10);
    cp5.addSlider("def").plugTo(parent, "def").setRange(0, 255).setPosition(10, 30);
  }

  public void draw() {
    background(abc);
  }

  private ControlFrame() {
  }

  public ControlFrame(Object theParent, int theWidth, int theHeight) {
    parent = theParent;
    w = theWidth;
    h = theHeight;
  }


  public ControlP5 control() {
    return cp5;
  }


  ControlP5 cp5;

  Object parent;
}

Hors ligne

 

#3 2014-05-14 18:31:41 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



le code ne marche pas. Il me donne cette erreur: nullerpointException. De plus, si tu as créer e. Comment je fais pour le mettre true ou false? par exemple en fonction d'un autre booléen ou dans groupEvent du bouton

Hors ligne

 

#4 2014-05-14 19:05:52 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



Ce code fonctionne parfaitement chez moi sous Ubuntu 14.04 + Processing 2.1.2
Donc je ne peux pas vraiment t'aider. Désolé... hmm

Pour info, je crois savoir que Mushussu est sur MacOS avec la même version de P5...

Par ailleurs, je t'invite à utiliser très modérément le mot "urgent" quand tu poses une question sur un forum et à proscrire complètement son écriture en majuscule...
Au mieux tu retarderas les éventuelles réponses...
Au pire, personne ne te répondra...

N'y voit pas un reproche, mais un conseil.

Bon courage. smile


L'Amour au Peuple !

Hors ligne

 

#5 2014-05-14 19:14:57 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



Très bien, pardon. Est-ce qu'il existe un autre moyen? ^^ Je suis sous Processing 2.1.1 mais je ne souhaite pas le mettre à jour dû à la version du lycée.

Et si je fais cette methode, comment je fais changer e (true/false) avec les boutons? Car j'ai un groupEvent mais je ne sais pas comment l'utiliser pour afficher une fenêtre

Hors ligne

 

#6 2014-05-15 08:07:24 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

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

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



Voilà, comment l'utiliser avec un bouton et un controlEvent(). Concernant ton problème, comme tu ne le précise pas je suppose que tu es sous Windows, peut-être mettre à jour java ! Mais sans certitude aucune.

import java.awt.Frame;
import java.awt.BorderLayout;
import controlP5.*;

private ControlP5 cp5;

ControlFrame cf;
Frame f;

int def;

void setup() {
  size(400, 400);
  cp5 = new ControlP5(this);

  // by calling function addControlFrame() a
  // new frame is created and an instance of class
  // ControlFrame is instanziated.
  cf = addControlFrame("extra", 200, 200);

  // add Controllers to the 'extra' Frame inside 
  // the ControlFrame class setup() method below.
  cp5.addButton("bouton")
    .setPosition(100, 100)
      .setSize(50, 19)
        ;
}

void draw() {
  background(def);
}

public void controlEvent(ControlEvent theEvent) {
  if (theEvent.getController().getName().equals("bouton")) {
    f.setVisible(!f.isShowing());
  }
}

ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
  f = new Frame(theName);
  ControlFrame p = new ControlFrame(this, theWidth, theHeight);
  f.add(p);
  p.init();
  f.setTitle(theName);
  f.setSize(p.w, p.h);
  f.setLocation(100, 100);
  f.setResizable(false);
  f.setVisible(false);
  return p;
}

// the ControlFrame class extends PApplet, so we 
// are creating a new processing applet inside a
// new frame with a controlP5 object loaded
public class ControlFrame extends PApplet {

  int w, h;

  int abc = 100;

  public void setup() {
    size(w, h);
    frameRate(25);
    cp5 = new ControlP5(this);
    cp5.addSlider("abc").setRange(0, 255).setPosition(10, 10);
    cp5.addSlider("def").plugTo(parent, "def").setRange(0, 255).setPosition(10, 30);
  }

  public void draw() {
    background(abc);
  }

  private ControlFrame() {
  }

  public ControlFrame(Object theParent, int theWidth, int theHeight) {
    parent = theParent;
    w = theWidth;
    h = theHeight;
  }


  public ControlP5 control() {
    return cp5;
  }

  ControlP5 cp5;

  Object parent;
}

Hors ligne

 

#7 2014-05-15 22:08:51 Re : HELP URGENT SVP Créer un lien entre fenêtre et bouton

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Re: HELP URGENT SVP Créer un lien entre fenêtre et bouton



Ca marche, merci beaucoup pour votre aide smile !

Une dernière questin, à quoi sert ces lignes?

public ControlFrame(Object theParent, int theWidth, int theHeight) {
    parent = theParent;
    w = theWidth;
    h = theHeight;
  }


  public ControlP5 control() {
    return cp5;
  }

car je ne vois pas son utilité

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024