Annonce

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


#1 2014-05-20 10:47:48 Besoin d'aide poour afficher des choses différentes sur chanques fenêt

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

Besoin d'aide poour afficher des choses différentes sur chanques fenêt



Salut!

J'ai réussi à créer ^2 fenêtre, mais je voudrais faire afficher 2 choses différentes.
Je me suis basé sur ce code

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

private ControlP5 cp5;

ControlFrame cf1, cf2;

int bgColor;

void setup() {
  size(400, 400);
  /* add a controlP5 instance for the main sketch window (not required for other ControlFrames to work) */
  cp5 = new ControlP5( this );
  cp5.addSlider( "s2" );
  
  
  /* Add a controlframe */
  
  cf1 = addControlFrame( "hello" , 200 , 200 , 20 , 20 , color( 100 ) );
  
  // add a slider with an EventListener. When dragging the slider, 
  // variable bgColor will change accordingly. 
  cf1.control().addSlider( "s1" ).setRange( 0 , 255 ).addListener( new ControlListener() {
    public void controlEvent( ControlEvent ev ) {
      bgColor = color( ev.getValue() );
    }
  });
  
  
  /* Add a second controlframe */
  
  cf2 = addControlFrame( "world" , 200 , 200 , 240 , 20 , color( 100 ) );
  
  // add a button with an EventListener. When releasing the button, 
  // variable bgColor will change to color( 255 );  
  cf2.control().addButton( "b1" ).addListener( new ControlListener() {
    public void controlEvent( ControlEvent ev ) {
      bgColor = color( 255 );
    }
  });
  
  cf2.control().addButton( "b2" ).addListener( new ControlListener() {
    public void controlEvent(ControlEvent ev) {
      bgColor = color( random( 255 ) , random( 255 ) , random( 255 ) );
    }
  });
    
}

void draw() {
  background( bgColor );
}


/* no changes required below */


ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
  return addControlFrame(theName , theWidth , theHeight , 100 , 100 , color( 0 ) );
}

ControlFrame addControlFrame(String theName, int theWidth, int theHeight , int theX , int theY , int theColor ) {
  Frame f = new Frame( theName );
  ControlFrame p = new ControlFrame( this , theWidth , theHeight , theColor );
  
  f.add( p );
  p.init();
  f.setTitle(theName);
  f.setSize( p.w , p.h );
  f.setLocation( theX , theY );
  f.setResizable( false );
  f.setVisible( true );
  // sleep a little bit to allow p to call setup.
  // otherwise a nullpointerexception might be caused.
  try {
    Thread.sleep( 20 );
  } catch(Exception e) {
  }
  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 bg;
  
  public void setup() {
    size(w, h);
    frameRate(25);
    cp5 = new ControlP5( this );  
  }

  public void draw() {
      background( bg );
  }
  
  private ControlFrame() {
  }

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


  public ControlP5 control() {
    return this.cp5;
  }
  
  ControlP5 cp5;

  Object parent;
  
}

voici le code initial

import controlP5.*;
import java.awt.Frame;
private ControlP5 Framep5;

int def;

ControlP5 cp5, controlP5;
Slider sR, sG, sB;
Textfield tf1;
//Button b3;
int code;
int myColor = color(250), c1,c2;
float n,n1, depth = 400;
boolean menu=true;

ControlFrame cf;
Frame f;


void setup(){
 size(800, 660, P3D,OPENGL);
 noStroke();
 smooth();
 boutton1(); 
 
}


void draw(){

  if(menu==true){
 nebula();
  }
  noLights();
  
}
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(400, 600);
  f.setLocation(100, 100);
  f.setResizable(false);
  f.setVisible(false);
  return p;
}

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

public class ControlFrame extends PApplet {

  int w, h;

  int abc = 100;

  public void setup() {
   
   colorMode(RGB, 255,255,255); 
        fill(0,0,255); 
        stroke (0,0,0); 
        rectMode(CORNER); 
        imageMode(CORNER); 
        
    size(400,600 );
     frameRate(30);
        background(0,0,0); 



        controlP5 = new ControlP5(this); 

        
        sR=controlP5.addSlider("sliderRouge",0,255,127,100,50,10,300); 
        sR.setNumberOfTickMarks(256); 
        sR.showTickMarks(false); 
        sR.setLabelVisible(true); 
        sR.setLabel("Rouge"); 
        sR.setColorActive(color(255,255,0)); 
        sR.setColorBackground(color(127,127,127)); 
        sR.setColorForeground(color(255,0,0)); 

        
        sG=controlP5.addSlider("sliderVert",0,255,127,200,50,10,300); 
        sG.setNumberOfTickMarks(256); 
        sG.showTickMarks(false); 
        sG.setLabelVisible(true); 
        sG.setLabel("Vert"); 
        sG.setColorActive(color(255,255,0)); 
        sG.setColorBackground(color(127,127,127)); 
        sG.setColorForeground(color(0,255,0)); 

      
        sB=controlP5.addSlider("sliderBleu",0,255,127,300,50,10,300); 
        sB.setNumberOfTickMarks(256); 
        sB.showTickMarks(false); 
        sB.setLabelVisible(true); 
        sB.setLabel("Bleu"); 
        sB.setColorActive(color(255,255,0)); 
        sB.setColorBackground(color(127,127,127));  
        sB.setColorForeground(color(0,0,255)); 

       

        tf1=controlP5.addTextfield("codeCouleur",300,500,80,20); 

        
        tf1.setAutoClear(false); 
        tf1.setValue("#"+color(sR.value(),sG.value(),sB.value()));
        
        
        
        tf1.setLabelVisible(true); 
        tf1.setLabel("Code Couleur"); 
        
        tf1.setColorActive(color(255,255,0)); 
        tf1.setColorBackground(color(255,255,255)); 
        tf1.setColorForeground(color(0,0,255));
        tf1.setColorCaptionLabel(color(0,0,0)); 
        tf1.setColorValueLabel(color(0,0,255)); 
    
  }

  public void draw() {
      background(sR.value(),sG.value(),sB.value()); 

        code=color(sR.value(),sG.value(),sB.value()); 

        tf1.setValue("#"+hex(code,6)+" "); 
  }

  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;
}

void boutton1(){
  cp5 = new ControlP5(this);
 
  cp5.addButton("Jouer")
     .setValue(0)
     .setPosition(300,200)
     .setSize(200,50)
     ;
   
  cp5.addButton("Multijoueur")
     .setValue(100)
     .setPosition(300,260)
     .setSize(200,50)
     ;
     
     
 cf = addControlFrame("extra", 200, 200);
 
  cp5.addToggle("fenetre")
     .setPosition(40, 100)
     .setSize(75, 40)
        ;

  cp5.addButton("Quitter")
     .setPosition(300,320)
     .setSize(200,50)
     .setValue(0)
     ;
}
 
 


public void controlEvent(ControlEvent theEvent) {
  println(theEvent.getController().getName());
  n = 0;
   
     if (theEvent.isGroup()) {
    
    println("event from group : "+theEvent.getGroup().getValue()+" from "+theEvent.getGroup());
    if (theEvent.getGroup().getValue() == 2.0){
      n=100;
    redraw();}
     if (theEvent.getGroup().getValue() == 1.0){
      n=50;
        redraw();}
      if (theEvent.getGroup().getValue() == 0.0){
      n=10;
    redraw();}

      
  } 
  
  else if (theEvent.isController()) {
    println("event from controller : "+theEvent.getController().getValue()+" from "+theEvent.getController());
  }

}

void mousePressed(){
  if(mouseX>=300 && mouseX<=500){
    
     if(mouseY>=320 && mouseY<=380){
      exit();
      } 
    
    if(mouseY>=320 && mouseY<=370){
     

      }
      
    if(mouseY>=260 && mouseY<=310){

    }
 }
  if(mouseX>=40 && mouseX<=115){
    if(mouseY>=100 && mouseY<=140){
      background(0);
    }}}

void nebula(){
  

 pushMatrix();
 background(200);

 
  float cameraY = height/1;
  float cameraX = width/1;
  
 translate(width/2, height/2, -depth/2);
  
 rotateY(frameCount*PI/500);
  
 float fov = cameraX/float(width) * PI/2;
 float cameraZ = cameraY / tan(fov / 2.0);
 float aspect = float(width)/float(height);
  
 perspective(fov, aspect, cameraZ/2000.0, cameraZ*4000.0);
  
 
 translate(width/10, height/10, depth/2);
  
 for(int i=0; i<2; i++) {
 float r = random(100);
 directionalLight(2, 83, 115, 
 1, 10, 0); 
 directionalLight(3, 115, 140, 
 10, 10, 0); 
 }
 
 
 for(int i=0; i<10; i++) {
  
   float r = random(20);
  
 rotateX(frameCount*PI/1000);
  

  
  
 for (int y = -2; y < 2; y++) {
 for (int x = -2; x < 2; x++) {
 for (int z = -2; z < 2; z++) {
 
 pushMatrix();
 translate(400*x, 300*y, 300*z);
 box(5, 5, 100);
 popMatrix();
  
 pushMatrix();
 translate(400*x, 300*y, 50*z);
 box(100, 5, 5);
 popMatrix();
  
 pushMatrix();
 translate(400*x, 10*y, 50*z);
 box(50, 5, 5);
 popMatrix();
 
 pushMatrix();
 rotateY(frameCount*PI/400);
 translate(100*x, 300*y, 300*z);
 box(60, 40, 20);
 popMatrix();
  
      }
     }
    }
   }
   popMatrix();
   translate(0,0,200);
 cp5.draw();
}




public void colorA(int theValue) {
  println("a button event from colorA: "+theValue);
  
  c2 = color(90,10,2);
}


public void colorB(int theValue) {
  println("a button event from colorB: "+theValue);
  c1 = c2;
  c2 = color(150,150,0);
}


public void colorC(int theValue) {
  println("a button event from colorC: "+theValue);
  c1 = c2;
  c2 = color(255,255,0);
}

public void play(int theValue) {
  println("a button event from buttonB: "+theValue);
  c1 = c2;
  c2 = color(0,0,0);
}

voici ce que j'ai tenté:

void setup(){
 size(800, 660, P3D,OPENGL);
 noStroke();
 smooth();
 boutton1(); 
   sR=cf2.control().addSlider("sliderRouge",0,255,127,100,50,10,300); 
   sR.setNumberOfTickMarks(256); 
          sR.showTickMarks(false); 
          sR.setLabelVisible(true); 
          sR.setLabel("Rouge"); 
          sR.setColorActive(color(255,255,0)); 
          sR.setColorBackground(color(127,127,127)); 
          sR.setColorForeground(color(255,0,0)); 
          
    sG=cf2.control().addSlider("sliderVert",0,255,127,200,50,10,300); 
          sG.setNumberOfTickMarks(256); 
          sG.showTickMarks(false); 
          sG.setLabelVisible(true); 
          sG.setLabel("Vert"); 
          sG.setColorActive(color(255,255,0)); 
          sG.setColorBackground(color(127,127,127)); 
          sG.setColorForeground(color(0,255,0)); 
  
        
            sB=cf2.control().addSlider("sliderBleu",0,255,127,300,50,10,300); 
          sB.setNumberOfTickMarks(256); 
          sB.showTickMarks(false); 
          sB.setLabelVisible(true); 
          sB.setLabel("Bleu"); 
        sB.setColorActive(color(255,255,0)); 
        sB.setColorBackground(color(127,127,127));  
        sB.setColorForeground(color(0,0,255)); 

       

        tf1=cf2.control().addTextfield("codeCouleur",300,500,80,20); 

        
        tf1.setAutoClear(false); 
        tf1.setValue("#"+color(sR.value(),sG.value(),sB.value()));
        
        
        
        tf1.setLabelVisible(true); 
        tf1.setLabel("Code Couleur"); 
        
        tf1.setColorActive(color(255,255,0)); 
        tf1.setColorBackground(color(255,255,255)); 
        tf1.setColorForeground(color(0,0,255));
        tf1.setColorCaptionLabel(color(0,0,0)); 
        tf1.setColorValueLabel(color(0,0,255)); 
}

Mais j'ai l'erreuyr null point exception et je ne comprends pas pourquoi. Pouvez-vous m'aider s'il vous plait?

Hors ligne

 

#2 2014-05-20 11:54:31 Re : Besoin d'aide poour afficher des choses différentes sur chanques fenêt

NaKroTeK
membre
Date d'inscription: 2014-05-15
Messages: 21

Re: Besoin d'aide poour afficher des choses différentes sur chanques fenêt



Bonjour,

En général le debugger JAVA te donne les lignes de codes où les erreurs ont eu lieu, j'ai un peu de mal à tout lire perso, c'est possible d'avoir soit l'archive de ton projet ou les copy/paste entier de tes fichiers ?

N.B : un null pointer exception est souvent levé à cause d'une variable mal initialisée, l'affichage complet de l'erreur serait un plus. smile

Hors ligne

 

#3 2014-05-20 12:23:48 Re : Besoin d'aide poour afficher des choses différentes sur chanques fenêt

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

Re: Besoin d'aide poour afficher des choses différentes sur chanques fenêt



Je pense que l erreur est au niveau du setup. Je suis sur a 90% que c est la l errrreur. Mais le pb est que je n arrive pas car je n arrive pas a m adapter par rapport au code source sur mon code.

Hors ligne

 

#4 2014-05-20 14:26:30 Re : Besoin d'aide poour afficher des choses différentes sur chanques fenêt

NaKroTeK
membre
Date d'inscription: 2014-05-15
Messages: 21

Re: Besoin d'aide poour afficher des choses différentes sur chanques fenêt



Bonjour,

Une erreur avec un message c'est plein d'information.
Moi par exemple avec ton truc dans tout les sens j'ai ça :
   
Caused by: java.lang.NullPointerException at tttt.setup(tttt.java:359)

Du coup je connais la ligne etc etc etc...

Je suis pas expert.....mais.


Pour t'adapter, pité pas trop copy/paste, avance pas à pas, fonction après fonction, au lieu d'avoir des énormes longueurs, essaye de diviser ton code en plusieurs petits morceaux. Si tu sais faire, mets les classes dans des fichiers séparés. Si tu ne sais pas faire, mets les classes dans le bas du code. Tu dois y toucher le moins possible. Et TEST chaque bout de code petit Ajout, pas tout à la Fin !!!!

Dernière modification par NaKroTeK (2014-05-20 15:00:38)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024