Se connecter avec
S'enregistrer | Connectez-vous

La method implementant CaretListener ne repond pas?

Dernière réponse : dans Programmation

Bonjour tout le monde,
dans mon programme j'ai écrit deux méthode qui implémente CaretListener, le blm qui se pose c'est que si je lé appelle dans une autre methode c'est la dernière à être appeler qui fonctionne. Et moi je voudrai que les deux fonctionnent dans la même methode. SVP venez à mon secours. :bounce: 


Code:
  1. public JTextField getComposanteUrlParame(){
  2.  
  3.  
  4. return (JTextField) composante.get((composante.size()-3));
  5.  
  6. }
  7.  
  8. public JTextField getComposanteMotparame(){
  9. return (JTextField)composante.get((composante.size()-3));
  10. }
  11.  
  12. public void ajouterMotParametMot(){
  13.  
  14. composante.add(new JTextField(""));
  15. composante.add(new JTextField(""));
  16. composante.add(new JLabel("%"));
  17.  
  18. positionY = positionY +40 ;
  19.  
  20.  
  21. int i= composante.size()-3;
  22.  
  23. composante.get(i).setBounds(w+w-80, positionY, w-180, 25);
  24. composante.get(i+1).setBounds(w+w+w-160, positionY,w-290, 25);
  25. composante.get(i+2).setBounds(w+w+w-120, positionY, 20, 25);
  26.  
  27. panel1.add(composante.get(i));
  28. panel1.add(composante.get(i+1));
  29. panel1.add(composante.get(i+2));
  30.  
  31.  
  32. getComposanteMotparame().addCaretListener(new CaretListener(){
  33.  
  34. public void caretUpdate(CaretEvent a) {
  35. // TODO Auto-generated method stub
  36. if(a.getSource()==getComposanteMotparame())
  37. ajouterMotParametMot();
  38. }
  39. });
  40.  
  41. panel1.repaint();
  42. this.repaint();
  43. }
  44.  
  45.  
  46. public void ajouterUrlParamUrl(){
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. composante.add(new JTextField("http://www."));
  54. composante.add(new JTextField());
  55. composante.add(new JLabel("%"));
  56.  
  57.  
  58.  
  59. positionY = positionY +40 ;
  60.  
  61.  
  62. i= composante.size()-3;
  63.  
  64.  
  65.  
  66.  
  67. composante.get(i).setBounds(x-20, positionY, w, 25);
  68. composante.get(i+1).setBounds(x+w+60, positionY,w-290, 25);
  69. composante.get(i+2).setBounds(x+x+w+70, positionY, 20, 25);
  70.  
  71.  
  72. panel1.add(composante.get(i));
  73. panel1.add(composante.get(i+1));
  74. panel1.add(composante.get(i+2));
  75.  
  76. System.out.println("mamere "+ getComposanteUrlParame().getText());
  77. getComposanteUrlParame().addCaretListener(new CaretListener(){
  78.  
  79. public void caretUpdate(CaretEvent a) {
  80. // TODO Auto-generated method stub
  81. if(a.getSource()==getComposanteUrlParame()){
  82. ajouterUrlParamUrl();
  83. }
  84. }
  85.  
  86. });
  87.  
  88. panel1.repaint();
  89. this.repaint();
  90.  
  91.  
  92. }
  93.  
  94. public void PlusmotPlusUrl(){
  95.  
  96.  
  97. composante.add(textUrl);
  98. composante.add(textParametreurl);
  99. composante.add(labelPoucentageurl);
  100. composante.add(textMotCles);
  101. composante.add(textParametremot);
  102. composante.add(labelPoucentagemot);
  103.  
  104. composante.get(i).setBounds(x-20, y, w, h);
  105. composante.get(i+1).setBounds(x+w+60, y,w-290, h);
  106. composante.get(i+2).setBounds(x+x+w+70, y, 20, h);
  107. composante.get(i+3).setBounds(w+w-80, y, w-180, h);
  108. composante.get(i+4).setBounds(w+w+w-160, y, w-290, h);
  109. composante.get(i+5).setBounds(w+w+w-120, y, 20, h);
  110.  
  111. this.panel1.add(composante.get(i));
  112. this.panel1.add(composante.get(i+1));
  113. this.panel1.add(composante.get(i+2));
  114. this.panel1.add(composante.get(i+3));
  115. this.panel1.add(composante.get(i+4));
  116. this.panel1.add(composante.get(i+5));
  117.  
  118.  
  119. ajouterUrlParamUrl();
  120. positionY = 10;
  121. ajouterMotParametMot();
  122.  
  123.  
  124.  
  125. panel1.repaint();
  126. this.repaint();
  127. }
Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

C'est normal que ton getComposanteUrlParame() et ton getComposanteMotparame() retournent le même élément ?
Parce que du coup tu mets tes CaretListener sur le même élément.

Merci, c vrai kils retounent les memes éléments mais des objets différents aprés modification:

public JTextField getComposanteUrlParame(){

return (JTextField) composante.get((composante.size()-6));

}

public JTextField getComposanteMotparame(){
return (JTextField)composante.get((composante.size()-3));
Est ce que le CaretListener prend en compte des ojets ou des éléments?
le programme réagi de la meme maniere aprés les modifications
Expert Programmation

Normalement tu dois être limité à un CaretListener par objet (enfin j'imagine...)

Et tu peux pas plus simplement faire textParametreUrl.addCaretListener et textParametreMot.addCaretListener, plutôt que de t'embêter avec des -3 et -6 qui ne correspondent à rien ?
Lassé par la pub ? Créez un compte
  • Contenus similaires :
Tags :
Tom's guide dans le monde