Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
975 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java] c'est à n'y rien comprendre !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] c'est à n'y rien comprendre !

n°567695
babthefox2​002
Posté le 15-11-2003 à 17:11:41  profilanswer
 

bonjour,
 
je sais que c'est le deuxième topic que je poste en peu de temps, mais là il vient de m'arriver un truc bizarre...
 
Dans mon programme j'ai un JPanel contenu lui même dans une JFrame, jusqu'ici tout va bien.
 
Au début de mon programme j'affiche dans mon Jpanel un message du genre "bienvenue", puis quelques secondes après j'affiche les consignes à suivre, puis "appuyer sur une touche quand vous êtes près".
 
Normalement mon programme affiche plusieurs mots à la suite, avec un délai bien précis pour chacun d'entre eux.
 
Si j'appuie sur une touche au moment de l'affichage des consignes je ne verai que le dernier mot apparaître pas les premiers !
Alors que si j'ajoute dans mon programme la fonction lancée par la méthode keyTyped, alors là je vois bien apparaître mes différents mots avec les bons temps de présentation !!!
 
J'avoue ne rein y comprendre, puisque celà me montre bien que ma méthode lancée par "keyTyped" fonctionne bien, et le fait de voir apparaître mon dernier mot prouve bien que cette méthode est lancée par "keyTyped" !
 
Si quelqu'un connait la raison, je veux bien comprendre.
 
Baba

mood
Publicité
Posté le 15-11-2003 à 17:11:41  profilanswer
 

n°567708
babthefox2​002
Posté le 15-11-2003 à 17:59:57  profilanswer
 

personne ne veut me répondre ?

n°567715
benou
Posté le 15-11-2003 à 18:20:45  profilanswer
 

ben comme ca on peut pas te dire pkoi ...
 
en tout ca moi j'ai pas d'idée ...


Message édité par benou le 15-11-2003 à 18:20:50

---------------
ma vie, mon oeuvre - HomePlayer
n°567717
babthefox2​002
Posté le 15-11-2003 à 18:26:48  profilanswer
 

voila la tête de ma fonction "keyTyped"
 

Code :
  1. public void keyTyped(KeyEvent evt) { test();}


 
et voici la tete de ma fonction test() :

Code :
  1. public void test() {
  2. String[] couple = new String[3];
  3. couple = _donnees.getCouple();
  4. setKeyEtat(1);
  5.     
  6. _panel.setEtat(2);
  7. repaint();
  8. try{new Thread().sleep(500);}
  9. catch(Exception ex){};
  10. //_panel.setEtat(0);
  11. _panel.afficheTexte(couple[0]);
  12. //repaint();
  13. try{new Thread().sleep(70);}
  14. catch(Exception ex){};
  15. _panel.afficheTexte("XXXX" );
  16. //repaint();
  17. try{new Thread().sleep(100);}
  18. catch(Exception ex){};
  19. _panel.afficheTexte(couple[1]);
  20. repaint();
  21. try{new Thread().sleep(500);}
  22. catch(Exception ex){System.out.println("\nOK\n" );};
  23. _compt++;
  24. if (_compt > _donnees._mots.length)
  25.     setKeyEtat(3);
  26.     } // test


 
Mais sans passer par keyTyped ca marche normalement !!


Message édité par babthefox2002 le 15-11-2003 à 18:41:43
n°567719
benou
Posté le 15-11-2003 à 18:28:15  profilanswer
 

sert toi des balises [ cpp] [ /cpp] pour afficher le code : la c'est illisible ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567720
benou
Posté le 15-11-2003 à 18:31:20  profilanswer
 

bha écoute avec ton code comme ca, j'en sais rien ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567726
verdoux
And I'm still waiting
Posté le 15-11-2003 à 18:41:43  profilanswer
 

Citation :


Code :
  1. try{new Thread().sleep(100);}
  2.  catch(Exception ex){};




C'est pour faire quoi ?

n°567728
babthefox2​002
Posté le 15-11-2003 à 18:43:05  profilanswer
 

pour afficher le mot pendant 100 ms dans le JPanel

n°567729
benou
Posté le 15-11-2003 à 18:43:48  profilanswer
 

une pause d'un 10e de secondes [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
n°567736
babthefox2​002
Posté le 15-11-2003 à 18:54:51  profilanswer
 

oui, c'est un peu spécial comme programme mais c'est tout à fait ça...
Mais le soucis c'est que sans passer par keyTyped() pour lancer cette méthode test() ça marche nickel, laors que là je ne vois que le dernier mot !!

mood
Publicité
Posté le 15-11-2003 à 18:54:51  profilanswer
 

n°567738
benou
Posté le 15-11-2003 à 19:00:33  profilanswer
 

il est gros ton code ? sinon balance le ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567742
babthefox2​002
Posté le 15-11-2003 à 19:08:54  profilanswer
 

bah ca fait pas loin de 300 lignes...
mais je vais regarder si je ne peux pas le réduire à ce qui m'intéresse...

n°567743
benou
Posté le 15-11-2003 à 19:09:37  profilanswer
 

babthefox2002 a écrit :

bah ca fait pas loin de 300 lignes...
mais je vais regarder si je ne peux pas le réduire à ce qui m'intéresse...


et t'as regardé ma réponse sur ton autre topic ? :o


---------------
ma vie, mon oeuvre - HomePlayer
n°567750
babthefox2​002
Posté le 15-11-2003 à 19:18:10  profilanswer
 

Code :
  1. import java.util.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5. import javax.swing.border.*;
  6. public class Semantik extends JFrame implements Runnable, KeyListener{
  7.     private int _keyEtat = -1;
  8.     private Affiche _panel;
  9.    
  10.     public Semantik() {
  11. super("Test de la mémoire" );
  12. _panel = new Affiche(this,0);
  13. getContentPane().add(_panel,BorderLayout.CENTER);
  14. addKeyListener (this);
  15. // on extrait les dimension de l'ecran
  16. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  17. int screenHeight = screenSize.height;
  18. int screenWidth = screenSize.width;
  19. setSize(screenWidth/2,screenHeight/2);
  20. setLocation(screenWidth/4, screenHeight/4);
  21. setVisible(true);
  22. try{new Thread().sleep(2000);}
  23. catch (Exception ex){};
  24. consigne();
  25.     } // Semantik (constructeur)
  26.     void setKeyEtat(int a) {
  27. _keyEtat = a;
  28.     } // setKeyEtat
  29.     int getKeyEtat() {
  30. return(_keyEtat);
  31.     } // getKeyEtat
  32.     public void keyPressed(KeyEvent evt){}
  33.     public void keyReleased(KeyEvent evt){ } 
  34.     public void keyTyped(KeyEvent evt) {
  35. test();
  36. } // keyTyped
  37.    
  38.     /** Methode permettant de lancer le test */
  39.     public void test() {
  40. String[] couple = new String[2];
  41. couple[0] = "chapeau";
  42. couple[1] = "melon";
  43. setKeyEtat(1);
  44.     
  45. _panel.setEtat(2);
  46. repaint();
  47. try{new Thread().sleep(500);}
  48. catch(Exception ex){};
  49. _panel.afficheTexte(couple[0]);
  50. try{new Thread().sleep(70);}
  51. catch(Exception ex){};
  52. _panel.afficheTexte("XXXX" );
  53. try{new Thread().sleep(100);}
  54. catch(Exception ex){};
  55. _panel.afficheTexte(couple[1]);
  56. repaint();
  57. try{new Thread().sleep(500);}
  58. catch(Exception ex){System.out.println("\nOK\n" );};
  59.     } // test
  60.     /** Methode permettant d'afficher les consignes */
  61.     public void consigne(){
  62. _panel.setEtat(1);
  63. setKeyEtat(0);
  64. repaint();
  65.     } // consigne
  66.     public static void main(String[] args) {
  67. Semantik frame = new Semantik(); // on cree un objet Semantik()
  68.     } // main
  69.     public void run(){}
  70. } // Semantik (classe)
  71. class Affiche extends JPanel{
  72.     private Semantik _semantik;
  73.     private int _etat = 0;
  74.     private String _texte;
  75.     /* constructeur de la classe */
  76.     public Affiche(Semantik s, int etat){
  77. super();
  78. _semantik = s;
  79. _etat = etat;
  80.     } // Affiche (constructeur)
  81.     void setEtat(int x){
  82. _etat = x;
  83.     } // setEtat
  84.     int getEtat(){
  85. return(_etat);
  86.     } // getEtat
  87.     /** methode qui permet d'afficher le texte "t" donne en entree */
  88.     protected void afficheTexte(String t) {
  89. _texte = t;
  90. setEtat(3);
  91. repaint();
  92.     } // afficheTexte  
  93.     /** fonction publique permettant d'afficher différents texte */
  94.     public void paintComponent(Graphics g) {
  95. super.paintComponent(g);
  96. FontMetrics fm = getFontMetrics(getFont());
  97. switch(_etat) {
  98. case 0 : {
  99.     int y = (getSize().height - (fm.getHeight()/3))/2;
  100.     int x = (getSize().width - fm.stringWidth(HELLO))/2;
  101.     g.drawString(HELLO, x, y);
  102.     break;} // case 0
  103. case 1 : {
  104.     int y = 20;
  105.     int x = (getSize().width - fm.stringWidth(CONSIGNE))/2;
  106.     g.drawString(CONSIGNE, x, y);
  107.     break;
  108. } // case 1
  109. case 2 : {
  110.     int y = (getSize().height - (fm.getHeight()/3))/2;
  111.     int x = (getSize().width - fm.stringWidth(POINT_FIXATION))/2;
  112.     g.drawString(POINT_FIXATION, x, y);break;
  113. } // case 2
  114. case 3 : {
  115.     int y = (getSize().height - (fm.getHeight()/3))/2;
  116.     int x = (getSize().width - fm.stringWidth(_texte))/2;
  117.     g.drawString(_texte, x, y);break;
  118. } // case 3
  119. } // switch
  120.     } // paintComponent
  121.     final static String HELLO = "Bonjour et Bienvenue";
  122.     final static String CONSIGNE = "CONSIGNE";
  123.     final static String POINT_FIXATION = "+";
  124. } // Affiche (classe)


Message édité par babthefox2002 le 15-11-2003 à 20:02:12
n°567751
babthefox2​002
Posté le 15-11-2003 à 19:19:58  profilanswer
 

Code :
  1. et t'as regardé ma réponse sur ton autre topic ?


 
oui mais je n'ai pas encore eu le temps de tester...
Mais je ne sais pas si ca marche quand le texte est afficher sur un pannel !

n°567754
benou
Posté le 15-11-2003 à 19:29:17  profilanswer
 

babthefox2002 a écrit :


oui mais je n'ai pas encore eu le temps de tester...
Mais je ne sais pas si ca marche quand le texte est afficher sur un pannel !


si tu avais dis que tu faisais de l'IHM :/


---------------
ma vie, mon oeuvre - HomePlayer
n°567756
benou
Posté le 15-11-2003 à 19:33:33  profilanswer
 

y compile pas ton code ... fais un effort ! :o


---------------
ma vie, mon oeuvre - HomePlayer
n°567762
babthefox2​002
Posté le 15-11-2003 à 19:57:55  profilanswer
 

là ca doit aller, je l'ai modifié dans le message au dessus...

n°567763
benou
Posté le 15-11-2003 à 20:00:09  profilanswer
 

babthefox2002 a écrit :

là ca doit aller, je l'ai modifié dans le message au dessus...


non.
 
Tu peux pas vérifier que ton code compile avant de l'envoyer ???  :pfff:


---------------
ma vie, mon oeuvre - HomePlayer
n°567765
babthefox2​002
Posté le 15-11-2003 à 20:03:14  profilanswer
 

non la c'est bon c'est sûr je viens de tester...
 
Et tu veras bien qu'on ne voit apparaître que le mot "melon" et pas "chapeau", ni"+", ni "XXXX"

n°567768
benou
Posté le 15-11-2003 à 20:08:30  profilanswer
 

verdoux a écrit :

Citation :


Code :
  1. try{new Thread().sleep(100);}
  2.  catch(Exception ex){};




C'est pour faire quoi ?


oups pardon, j'ai mal lu ...
 
effectivement, c'est n'importe quoi : "sleep()"  est une méthode static : faut pas faire de new ! Thread.sleep() suffit ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567777
benou
Posté le 15-11-2003 à 20:21:21  profilanswer
 

j'y connais pas grand chose en IHM en java, mais visiblement, ca vient du fait que l'appel de repaint ne déclenche pas l'appel à paintComponent ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567778
babthefox2​002
Posté le 15-11-2003 à 20:22:08  profilanswer
 

et tu ne sais pas pourquoi ca ne fonctionne pas sinon ??

n°567781
benou
Posté le 15-11-2003 à 20:28:23  profilanswer
 

ben non, sinon je te l'aurais dit ...


---------------
ma vie, mon oeuvre - HomePlayer
n°567792
babthefox2​002
Posté le 15-11-2003 à 20:48:23  profilanswer
 

tant pis merci beaucoup d'avoir passé autant de temps a avoir essayé de m'aidé...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] c'est à n'y rien comprendre !

 

Sujets relatifs
[JAVA] java 3D : tutoriaux[java] newbye : rentrer des valeurs dans mon programme à l'exécution
[Java] Tri d'un vecteur[Java] [DEFI] Voir les partie de quake en cours....
[JAVA] Packager un jar contenant des jars utilisant des jars , etc ...aidez-moi à faire mon devoir de Java svp..... please !!!
html : site images + zones de textes, sans calques, ni rien... ?[Java] Problème avec JPopupMenu [résolu]
[Java]Appeler une méthode d'une classe à partir d'1 String [Résolu][Java] URL de la page des ressources pour faire du GUI
Plus de sujets relatifs à : [java] c'est à n'y rien comprendre !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR