Bonjour tout le monde
voila j'ai créer trois méthodes les 2 premières contiens les écouteurs la dernière les appel. Il se trouve que lors de l'appel la premeire methode appelée ne s'exécute pas, c'est la dernière qui s'exécute. j'ai essayer les thread mais sa ne fait pas l'affaire 
  
 
Le code:
 public JTextField getComposanteUrlParame(){  
 	//panel1.repaint();
 
 	return (JTextField) composante.get((composante.size()-3));
 
 }
 
 public JTextField getComposanteMotparame(){
 	return (JTextField)composante.get((composante.size()-3));
 }
 
 public  void ajouterMotParametMot(){
   
 	composante.add(new JTextField("" ));
 	composante.add(new JTextField("" ));
 	composante.add(new JLabel("%" ));
   
 	positionY = positionY +40 ;
   
 
 	int i=	composante.size()-3;
   
   composante.get(i).setBounds(w+w-80, positionY, w-180, 25);
   composante.get(i+1).setBounds(w+w+w-160, positionY,w-290, 25);
   composante.get(i+2).setBounds(w+w+w-120, positionY, 20, 25);
   
   panel1.add(composante.get(i));
   panel1.add(composante.get(i+1));
   panel1.add(composante.get(i+2));
   
   
   getComposanteMotparame().addCaretListener(new CaretListener(){
     
   public void caretUpdate(CaretEvent a) {
   	// TODO Auto-generated method stub
   	if(a.getSource()==getComposanteMotparame())
     ajouterMotParametMot();
   	}
   });
 
         panel1.repaint();
         this.repaint();
 }
 
 
 public  void ajouterUrlParamUrl(){
   
   
 
   
   
   
 	composante.add(new JTextField("http://www." ));
 	composante.add(new JTextField());
 	composante.add(new JLabel("%" ));
   
 
   
 	positionY = positionY +40 ;
 
 
   i=	composante.size()-3;
   
 
   
     
   composante.get(i).setBounds(x-20, positionY, w, 25);
   composante.get(i+1).setBounds(x+w+60, positionY,w-290, 25);
   composante.get(i+2).setBounds(x+x+w+70, positionY, 20, 25);
 
   
   panel1.add(composante.get(i));
   panel1.add(composante.get(i+1));
   panel1.add(composante.get(i+2));
         
 	System.out.println("mamere  "+ getComposanteUrlParame().getText());
 	getComposanteUrlParame().addCaretListener(new CaretListener(){
 
   public void caretUpdate(CaretEvent a) {
   	// TODO Auto-generated method stub
   	if(a.getSource()==getComposanteUrlParame()){
     ajouterUrlParamUrl();
   	}
   }
   
 	});
     
         panel1.repaint();
         this.repaint();
         
         
 }
 
public void PlusmotPlusUrl(){
   
   
 	composante.add(textUrl);
 	composante.add(textParametreurl);
 	composante.add(labelPoucentageurl);
 	composante.add(textMotCles);
 	composante.add(textParametremot);
 	composante.add(labelPoucentagemot);
   
 	composante.get(i).setBounds(x-20, y, w, h);
 	composante.get(i+1).setBounds(x+w+60, y,w-290, h);
 	composante.get(i+2).setBounds(x+x+w+70, y, 20, h);
 	composante.get(i+3).setBounds(w+w-80, y, w-180, h);
 	composante.get(i+4).setBounds(w+w+w-160, y, w-290, h);
 	composante.get(i+5).setBounds(w+w+w-120, y, 20, h);
   
 	this.panel1.add(composante.get(i));
 	this.panel1.add(composante.get(i+1));
 	this.panel1.add(composante.get(i+2));
 	this.panel1.add(composante.get(i+3));
 	this.panel1.add(composante.get(i+4));
 	this.panel1.add(composante.get(i+5));
 
   
   ajouterUrlParamUrl();  
   	positionY = 10;
    ajouterMotParametMot();
   
   
   
 	panel1.repaint();
 	this.repaint();
 }