[JAVA] impossible d'executer une fonction.
Résolu/Fermé
Lazarey
Messages postés
3239
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
-
16 févr. 2008 à 02:14
Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 - 16 févr. 2008 à 15:07
Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 - 16 févr. 2008 à 15:07
A voir également:
- [JAVA] impossible d'executer une fonction.
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Fonction si et - Guide
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
6 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
16 févr. 2008 à 05:16
16 févr. 2008 à 05:16
Bonjour,
Je ne connais rien à JAVA, mais une chose m'a intrigué en survolant ton code : (je vais peut-être t'écrire une grosse c......)
nb_enr est initialisé à 0 et progresse avec ++ dans LIRE_BASE à concurrence du nombres de lignes du mois de janvier. Je présume que en JAVA comme en C, avec ++ chaque incrémentation fait progresser la variable/indice (nb_enr) APRES son utilisation dans l'instruction où ++ est codé, et que le premier élément d'un tableau est référencé par la valeur 0 (exemple volume [nb_en++]=....... si on raisonne sur la 1ere itération elle équivaut à volume [0]=..... et ensuite nb_enr passe à 1). Dans ton cas et dans cette hypothèse tu fais un comptage du nombre de lignes par : nb_enr++ et ensuite tu l'utilises comme indice sous la forme volume [nb_enr] à ce niveau nb_enr a une valeur +1 par rapport à celle qu'il devrait avoir. Il suffirait donc d'éliminer l'instruction nb_enr++ et d'ajouter ++ à l'instruction : volume [nb_enr]=........soit : volume [nb_enr++]=............
De même dans PAINT tu définis et tu initialises la variable i à 0 (int i = 0;) alors que dans la boucle for (for (i=1; i<=nb_enr; i++)) tu l'initialises à la valeur 1 pour "démarrer" l'itération.
Si mon raisonnement précédent sur les tableaux est juste, le même en JAVA et en C, tu "sautes" le 1er élément du tableau volume dans cette boucle (lequel élément n'avait de toute façon pas été renseigné dans LIRE_BASE ni initialisé ailleurs). Si, comme en C, ce premier élément est susceptible d'être renseigné avec une valeur particulière, '\0' par exemple, tous les coups sont permis..............
Dans le cas contraire, si en JAVA le premier élément d'un tableau est référencé par la valeur 1 (comme en COBOL par exemple) ne tiens pas compte de mes élucubrations........
Je ne connais rien à JAVA, mais une chose m'a intrigué en survolant ton code : (je vais peut-être t'écrire une grosse c......)
nb_enr est initialisé à 0 et progresse avec ++ dans LIRE_BASE à concurrence du nombres de lignes du mois de janvier. Je présume que en JAVA comme en C, avec ++ chaque incrémentation fait progresser la variable/indice (nb_enr) APRES son utilisation dans l'instruction où ++ est codé, et que le premier élément d'un tableau est référencé par la valeur 0 (exemple volume [nb_en++]=....... si on raisonne sur la 1ere itération elle équivaut à volume [0]=..... et ensuite nb_enr passe à 1). Dans ton cas et dans cette hypothèse tu fais un comptage du nombre de lignes par : nb_enr++ et ensuite tu l'utilises comme indice sous la forme volume [nb_enr] à ce niveau nb_enr a une valeur +1 par rapport à celle qu'il devrait avoir. Il suffirait donc d'éliminer l'instruction nb_enr++ et d'ajouter ++ à l'instruction : volume [nb_enr]=........soit : volume [nb_enr++]=............
De même dans PAINT tu définis et tu initialises la variable i à 0 (int i = 0;) alors que dans la boucle for (for (i=1; i<=nb_enr; i++)) tu l'initialises à la valeur 1 pour "démarrer" l'itération.
Si mon raisonnement précédent sur les tableaux est juste, le même en JAVA et en C, tu "sautes" le 1er élément du tableau volume dans cette boucle (lequel élément n'avait de toute façon pas été renseigné dans LIRE_BASE ni initialisé ailleurs). Si, comme en C, ce premier élément est susceptible d'être renseigné avec une valeur particulière, '\0' par exemple, tous les coups sont permis..............
Dans le cas contraire, si en JAVA le premier élément d'un tableau est référencé par la valeur 1 (comme en COBOL par exemple) ne tiens pas compte de mes élucubrations........
Lazarey
Messages postés
3239
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
745
16 févr. 2008 à 11:58
16 févr. 2008 à 11:58
Salut,
En fait, je ne sais pas trop. Je pense que les tableaux commencent à 0 en JAVA.
Mais vu que je ne rempli pas la première ligne, je me suis dit que ça n'était pas un problème.
Merci du conseil en tout cas, mais mon problème est toujours la.
merci et à +.
En fait, je ne sais pas trop. Je pense que les tableaux commencent à 0 en JAVA.
Mais vu que je ne rempli pas la première ligne, je me suis dit que ça n'était pas un problème.
Merci du conseil en tout cas, mais mon problème est toujours la.
merci et à +.
Bonjour je ne comprends pas bien ta question tu n'arrives pas à faire le lien et ta courbe et le resultat de ta base de données est cela?
si c'est cela je te propose de recuperer tes données dans objet ResultSetMetaData permettant de conserver la trannsformation des fichiers...bref puis tu les recuperes dans un tableau d'objets.Par ailleurs il faut te rassurer que les données de ta courbe sont à chaque fois contenues dans un tableau d'objets.alors apres le resultat de ta requete dans ce tableau d'objets(enfin une matrice) tu vas faire appel à tes fonctions pour l'afficher ta courbe.
s'il y a une chose que tu comprends repose ta question ou pose moi des questions.
bon courage.
si c'est cela je te propose de recuperer tes données dans objet ResultSetMetaData permettant de conserver la trannsformation des fichiers...bref puis tu les recuperes dans un tableau d'objets.Par ailleurs il faut te rassurer que les données de ta courbe sont à chaque fois contenues dans un tableau d'objets.alors apres le resultat de ta requete dans ce tableau d'objets(enfin une matrice) tu vas faire appel à tes fonctions pour l'afficher ta courbe.
s'il y a une chose que tu comprends repose ta question ou pose moi des questions.
bon courage.
Lazarey
Messages postés
3239
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
745
16 févr. 2008 à 12:53
16 févr. 2008 à 12:53
Salut,
J'ai pas compris !!!! :-)
Je débute en Java, et je ne sais pas ce qu'est un ResultSetMetaData.
Moi ce que je veux, c'est pouvoir exécuter ma procédure lire_base() une fois pour que les tableaux se remplissent avec les données.
Le problème, c'est que dans ma proc start(), il me souligne lire_base() et met comme erreur : "Unhandled exception type Exception".
Il me fait rajouter "throws Exception", mais dans ce cas, j'ai ce message "Exception Exception is not compatible with throws clause in Applet.start()".
Je voudrais seulement exécuter ma procédure lire_base(), même si c'est n'importe où dans le code.
J'ai pas compris !!!! :-)
Je débute en Java, et je ne sais pas ce qu'est un ResultSetMetaData.
Moi ce que je veux, c'est pouvoir exécuter ma procédure lire_base() une fois pour que les tableaux se remplissent avec les données.
Le problème, c'est que dans ma proc start(), il me souligne lire_base() et met comme erreur : "Unhandled exception type Exception".
Il me fait rajouter "throws Exception", mais dans ce cas, j'ai ce message "Exception Exception is not compatible with throws clause in Applet.start()".
Je voudrais seulement exécuter ma procédure lire_base(), même si c'est n'importe où dans le code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
change ta methode start par ceci:
public void start(){
try{lire_base();}
catch(Exception e){System.erre.println(e.getMessage();}
}
et le tour est joué.
Mais je ne comprens pas pourquoi tu utilise la méthode start...le mieu c'est d'utilier la méthode init() dans une applet car c'est elle qui appel l'instance de ton applet l'initialise et bien d'autres.
Je suis à ta disposition pour d'autres questions.
public void start(){
try{lire_base();}
catch(Exception e){System.erre.println(e.getMessage();}
}
et le tour est joué.
Mais je ne comprens pas pourquoi tu utilise la méthode start...le mieu c'est d'utilier la méthode init() dans une applet car c'est elle qui appel l'instance de ton applet l'initialise et bien d'autres.
Je suis à ta disposition pour d'autres questions.
Lazarey
Messages postés
3239
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
745
16 févr. 2008 à 15:07
16 févr. 2008 à 15:07
C'est bon !!!!!!!
Ca fonctionne. J'ai fait comme tu m'as dit, mais j'ai créé des fonctions dans une nouvelle classe, et j'ai utilisé try et catch.
Merci beaucoup. A+.
Ca fonctionne. J'ai fait comme tu m'as dit, mais j'ai créé des fonctions dans une nouvelle classe, et j'ai utilisé try et catch.
Merci beaucoup. A+.