[JAVA] probléme d'échange de panneaux

us3l3ss -  
 us3l3ss -
Bonjour,
je rencontre quelque problèmes en essayant d'échanger des panneaux à l'aide de bouton.
sachant que l'un des panneau affiche une courbe et l'autre des images.

Informations :
les 2 panneau à interchanger sont le 3 et le 5.
la fonction go permet le tracage de la courbe sur le panneau5

voici un bout de mon code:
public class FirstApplet extends JApplet {

//déclaration......

public void init(){
		
		//Parametrage du conteneur principal (fenetre)
		this.setSize(600, 600);
		container.setBackground(Color.GRAY);
        container.setLayout(new GridLayout(2, 2)); //, 2, 2));
                    
        container.add(panneau2); //Ajout du panneau2 en haut a gauche   
               
        container.add(panneau);  //Ajout du panneau1 en haut a droite
        
        //Déclaration association Bouton-Actionlistener
        panneau4.bouton1.addActionListener(new BoutonListener()); 
        panneau4.bouton2.addActionListener(new Bouton2Listener());
        panneau4.bouton3.addActionListener(new Bouton3Listener()); 
        panneau4.bouton4.addActionListener(new Bouton4Listener());
        panneau4.bouton5.addActionListener(new Bouton5Listener());
        panneau4.bouton6.addActionListener(new Bouton6Listener());
        
        panneau4.addBouton();  // fonction de la classe panneau qui ajoute les boutons
        container.add(panneau4);  //Ajout du panneau4 en bas a gauche
        
        container.add(panneau3);  //Ajout du panneau5 en bas a droite
             
        this.setContentPane(container); //ajout du conteneur principal dans la fenetre visible java applet
        this.setVisible(true);
    
	}
// POUR LE TRACAGE DE LA COURBE

void go(int I){
		/* Initialisation des différentes variables */
			 int x1, y1;
			 float[] tab =new float [(container.getWidth()/2)];
			 float borneA,borneB;
	         	borneA=I-5;
	         	borneB=I+5;
	         float X = borneA;
	         System.out.println("largeur fenetre : "+((container.getWidth()/2)));
			 float pas;
	         pas=(borneB-borneA)/((container.getWidth()/2));
	         System.out.println("pas : "+pas);
	         int pasFen=1;
	         float maxY, minY;
	         panneau5.setPosX(0);
	         
	         
	     /* Calcul des points qui serviront a créer la courbe */
	         for (int i=0;i<((container.getWidth()/2));i++){
	         	tab[i]=(float) (Math.sin(X)/X);						// fonction a tracer
	         	//System.out.println("f("+(X)+")="+tab[i]);          // Visualisation console f(x)=y
	         	X=X+pas;
	         }
	     /* Recherche des extremums */
	         maxY=minY=tab[0];
	         for (int i=0;i<((container.getWidth()/2));i++){
	         	if (tab[i]>maxY) maxY=tab[i];
	         	else if (tab[i]<minY) minY=tab[i];
	         }
	         
	     /* Mise a l'échelle de la fenetre du point maximum */
	         int maxYFen; 
	         	if (maxY<0)
	         		maxYFen=(int) ((-maxY*((container.getWidth()/2))/(maxY-minY))+((container.getWidth()/2)-1));
	         	else 
	         		maxYFen=(int) ((((container.getWidth()/2)))-(maxY*((container.getWidth()/2))/(maxY-minY)));
	         	
	         
	         	
	         	
	     /* Parcours du tableau des points */   
	         for(int i = 0; i < tab.length; i++)
	         {		
	        	/* initialisation de x sur la fenetre */  
	                 x1=panneau5.getPosX()+pasFen;
	                 
	            /* calcul de la position de y sur la fenetre */     	
	                 if (tab[i]<0)
	                	 y1=(int) ((-tab[i]*((container.getWidth()/2))/(maxY-minY))+((container.getWidth()/2))-maxYFen);
	                 else 
	                	 y1=(int) ((((container.getWidth()/2))-maxYFen)-(tab[i]*((container.getWidth()/2))/(maxY-minY)));

	                 //System.out.println("f("+(x1)+")="+y1);
	                 
	            /* Si fonction strictement positive on ajuste la courbe a l'écran */
	                 if (minY>0) y1=y1+(((container.getWidth()/2))/2)-2;
	                 
	            /* Envoi des informations a afficher */
	                 panneau5.setPosX(x1);
	                 panneau5.setPosY(y1);
	                 panneau5.repaint();
	                 
	            /* Sauvegarde de l image du point afin de créer une courbe */
	                 try {
	                         Thread.sleep(3);
	                 } catch (InterruptedException e) {
	                         e.printStackTrace();
	                 }
	         }
	         
		 }

class BoutonListener implements ActionListener{
        public void actionPerformed(ActionEvent arg0) {
               container.remove(panneau5);
               container.add(panneau3);
               repaint();
               panneau4.bouton1.setEnabled(false);
               panneau4.bouton2.setEnabled(true); 
        }     
}
class Bouton2Listener  implements ActionListener{
        public void actionPerformed(ActionEvent e) {
        	container.remove(panneau3);
            container.add(panneau5);
            
    		t = new Thread(new PlayAnimation());
              
                panneau4.bouton1.setEnabled(true);
                panneau4.bouton2.setEnabled(false);
                t.start(); 
                panneau.repaint();
                repaint();
        }   
}       
class PlayAnimation implements Runnable{
        @Override
        public void run() {
  
            go(I);
//            I=-10;
//            go(I);               
        }               
}
A voir également:

1 réponse

us3l3ss
 
si vous avez besoin de plus d'information..
0