J aimerai que vs puissiez m aider pour terminer mon projet sur la réalisation d'un atlas routier. J ai rencontre quelques problemes sur mon code java.
J aimerai que vous puissiez m aider. Je pourrai poster tout le code et des explications si quelqu un souhaite bien m aider
Merci à ts
bye
réalisation d un maroc routier en java??
jeu, 07/08/2008 - 01:00
#1
réalisation d un maroc routier en java??
Si tu poses une question bien précise, avec un petit peu de code pour qu'on comprenne bien tu trouveras probablement de l'aide ici :)
ok,je vais bien preeciser mon probleme et poster mon code aussi
merci
voici l énnoncé de mon projet:
Projet de Java: Conception d'un atlas routier
Vous allez dans ce projet écrire une application permettant de calculer et de visualiser sur une carte un itinéraire entre deux villes de France, calculer des itinéraire optimum en temps ou en consommation d'essence, etc...
Les fichiers nécéssaire à ce projet sont les suivants: FileTableau.class, ville.txt, route.txt
Etape 1: Chargement des données
Les données nécéssaires à votre application sont stockées dans des fichiers. Dans un premier temps, nous allons nous intérésser au fichier "ville.dat", qui contient les informations concernant les villes elle-mêmes. Le fichier contient une ligne pour chaque ville enregistrée.
Chaque ligne est construite ainsi: il y a quatre champs, le premier est le nom de la ville, le second son code, le troisième et le quatrième ses coordonnées. Les coordonnées sont fournies en km, et se situent donc entre 0 et 1000. Les champs sont séparés par des ";". Voici un extrait de ce fichier:
Lille;7;617;50
Nice;50;958;797
...
Vous pouvez éditer directement ce fichier dans DrJava ou WordPad pour voir son contenu.
Pour modéliser l'ensemble de nos villes, vous allez écrire deux classes:
La classe Ville, qui contient les données relatives à une ville (nom, code, coordonnées)
La classe Monde, qui contient l'ensemble de toutes les villes. La classe Monde doit posséder un tableau de villes et une méthode:
public void charger(String fichier)
dont le rôle est de remplir le tableau avec les données contenues dans le fichier passé en paramètre (qui sera "ville.dat" dans notre cas).
Pour écrire la méthode "charger", vous avez besoin des outils suivants:
La classe TextFile, qui vous permet de charger un fichier dans un tableau de Strings. Le fichier se charge en créant un objet TextFile ainsi:
TextFile tf = new TextFile("ville.dat");
tf contient alors l'ensemble des lignes du fichier "ville.dat". Cet ensemble peut être interrogé par deux méthodes de la classe TextFile: void getSize() qui renvoie le nombre de ligne, et String getLine(int i) qui renvoie la String correspondant à la ième ligne (à partir de 0).
La classe StringTokenizer, qui va vous permettre d'extraire chacun des champs de la ligne. Vous consulterez la documentation en ligne de Java pour apprendre à vous en servir.
La fonction Integer.parseInt(String s) qui vous permettra de convertir les Strings obtenues en entiers, si besoin est.
Une fois la classe Monde terminée, vous la testerez en créant un programme de test qui créé un objet Monde, charge le fichier "ville.dat", et affiche pour chacune des villes son nom, son code, ses cooronnées.
Etape 2: Affichage de la carte
Premières expérimentations
Dans un premier temps, vous allez créer une classe TestDessin héritant de pour expérimenter le dessin dans les fenètre en Java.
Jusque là, vous avez appris à ajouter des composants graphiques dans une fenètre. Ici, il faut directement dessiner dedans. Les dessins se font au sein d'une méthode spéciale appelé automatiquement par Java au moment de l'affichage. Vous devez écrire cette méthode ainsi:
public void paint(Graphics g) {
super.paint(g);
...
}
Vous devez remplacer les trois points par vos instructions d'affichage, qui seront des méthodes de l'objet graphique g. Par exemple, pour dessiner un rectangle de 10 sur 10 aux coordonnées (100,50), on utilisera la méthode:
g.fillRect(100,50,10,10)
Vous devez également ajouter à votre programme la méthode suivante, pour lui premettre de mettre à jour correctement votre dessin en cas de déplacement ou de redimensionnement de la fenêtre:
public void update(Graphics g) {
super.update(g);
paint(g);
}
Expérimentez différentes méthodes d'affichage (rectangle, ligne...) ainsi que l'affichage de chaines de caractères. Consultez la documentation de la class Graphics pour avoir plus d'informations sur les instructions d'affichage.
La classe Carte
Vous allez écrire une classe Carte héritant de JFrame qui sera chargée de l'affichage de la carte. Comme dans la classe de test précédente, l'affichage se fera au sein de la méthode paint.
Bien sûr, vous allez avoir besoin des données sur les villes pour afficher la carte. Celles-ci vous seront fournies sous forme d'un objet de type Monde qui sera passé au constructeur de Carte et stockés sous forme d'attribut de la classe Carte.
Dans un premier temps, l'affichage de la carte ne consiste qu'en l'affichage de chacune des villes. Un point (ou un rectangle ou un cercle) aux coordonnées de chaque ville, et son nom affiché à coté. Pour rendre la carte plus lisible, vous pouvez utiliser une police de caractère plus réduite, ainsi que des couleurs.
Ecrivez la classe Carte et testez-la. Si votre programme est correct, l'ensemble des villes doit se disposer pour former la silhouette de la France.
Etape n°3: Un premier Atlas
Vous allez maintenant transformer votre carte en une application capable d'indiquer une ville selectionnée par l'utilisateur.
L'application que vous allez créer sera une fenêtre divisée en deux parties. Dans la partie gauche, il y aura la carte, et dans la partie droite, il y aura l'interface utilisateur, comportant un titre, une zone de saisie et un bouton. Quand l'utilisateur rentrera le nom d'une ville et cliquera sur le bouton, alors celle-ci devra s'afficher en rouge.
L'interface graphique
Modifiez la classe Carte pour que celle-ci puisse s'insérer dans votre application. Pour cela, elle ne doit plus hériter de JFrame, mais de JPanel.
Votre carte n'est maintenant plus directement affichable, car ce n'est plus une fenêtre, mais un composant graphique. Vous devez donc supprimer l'instruction show(). Pour spécifier la taille du composant, remplacez setBounds(X,Y) par setPreferredSize(new Dimension(X,Y)). Votre composant graphique Carte est maintenant prêt.
Créez maintenant une classe Atlas héritant de JFrame, qui sera votre application principale. Dans le constructeur de votre application, créez un Container et insérez-y un label pour le titre, une zone de saisie et un bouton. Ce Container sera votre interface. Utilisez le layout suivant pour votre container:
BoxLayout interfaceLayout = new BoxLayout(c,BoxLayout.Y_AXIS)
Pour que la zone de saisie ne soit pas trop grande, vous pouvez lui donner une taille maximum avec la méthode setMaximumSize(Dimension d). Ajoutez dans le Content Pane de votre application la carte et l'interface.
Testez votre application. Vous devez voir apparaitre la carte sur la gauche et l'interface sur la droite.
Un premier traitement
Ecrivez dans la classe Monde une méthode:
Ville getVilleParNom(String nomVille)
qui renvoie la ville dont le nom est passé en paramètre.
Ajoutez dans la classe Carte un attribut villeSelectionnee qui contient le code de la ville selectionnée, et une méthode
setVilleSelectionnee(Ville v)
qui permet de changer cet attribut.
Modifiez la méthode paint de la classe Carte pour que la ville selectionnée s'affiche en couleur.
Enfin, modifiez la classe Atlas pour que lorsque l'utilisateur clique sur le bouton "Rechercher", la ville qu'il a entré dans la zone de saisie s'affiche en couleur. Référez-vous à la correction du TP n°7 si besoin est.
Etape n°4: Les routes
Chargement
Le fichier "route.dat" contient les informations concernant les routes entre les villes. Chaque ligne contient trois nombres. Le premier est le code de la ville de départ, le second le code de la ville d'arrivée et le troisième la distance.
Pour chaque ville, vous allez ajouter les informations concernant ses voisines. Pour cela, vous allez ajouter dans la classe Ville trois attributs:
un attribut int nbVoisines, contenant le nombre de voisines
un tableau Ville [] voisines, contenant les villes voisines. Il n'y a jamais plus de 10 voisines, donc vous pouvez déclarer à l'avance un tableau de cette taille.
un tableau int [] distanceVoisines, contenant les distances correspondantes.
Vous allez également ajouter une méthode
public void ajouterVoisine(Ville v,int distance)
permettant d'ajouter une nouvelle voisine.
Dans la classe Monde, vous allez écrire une méthode
public Ville getVilleParCode(int code)
qui renvoie la ville dont le code est passé en paramètre.
Enfin, vous allez ajouter le chargement des routes à la suite du chargement des villes dans la classe Monde. Attention, pour chaque route entre deux villes X et Y, Y doit être ajouté aux voisines de X, et X aux voisines de Y.
Affichage
Modifiez la méthode paint de la classe Carte pour que les routes soit affichées.
Etape n°5: Les itinéraires
Le principe de l'algorithme
Le calcul du plus cours chemin entre deux villes n'est pas un problème très simple à resoudre. Vous allez ici utiliser un algorithme simplifié, qui ne donne pas toujours le meilleur résultat, mais généralement une bonne approximation.
Pour aller d'une ville A vers une ville B, vous allez adopter la demarche suivante:
On se place en A.
On se deplace vers la ville voisine la plus proche de B.
On recommence l'étape précédente jusqu'à se situer en B.
Cet algorithme fonctionne dans la grande majorité des cas, mais pas toujours, comme vous le verrez par la suite.
Mise en oeuvre
Distances
La première chose à faire est d'écrire une méthode de calcul de distance entre deux villes. Attention! Le fichier "route.dat" vous fournit les longueurs des routes entre villes voisines. Dans l'algorithme précédent, vous avez besoin de connaître la distance réélle entre deux villes quelconques. Vous allez pour cela faire un simple calcul de distance grâce aux coordonnées géométriques des villes.
Ajoutez à la classe Ville une méthode public int distance(Ville v) qui renvoie la distance à la ville passée en paramètre.
Aide: pour calculer la racine carrée d'un entier x, vous devez utiliser la méthode suivante: (int)(Math.sqrt(x))
Itineraire
Vous allez maintenant écrire une classe Itineraire, qui caractérise un itinéraire entre deux villes.
La classe contient un tableau de villes, qui sont les villes présentes sur l'itinéraire, ainsi que le nombre de ville. Le tableau sera remplit pendant le calcul de l'itinéraire.
La classe, en plus des accesseurs getVille et getNbVille, possède une méthode:
public boolean contains(Ville v)
qui renvoie true si v est sur l'itinéraire, et false sinon.
Enfin, et surtout, elle possède un constructeur
public Itineraire(Ville depart,Ville arrivee)
qui construit l'itinéraire entre les villes depart et arrivee grâce à l'algorithme décrit précédemment.
Affichage
De même que pour villeSelectionnee, vous allez ajouter un attribut itineraireSelectionne et une méthode
public void setItineraireSelectionne(Itineraire i)
à votre classe Carte.
Vous allez modifier la méthode paint de manière à ce que les villes et les routes sur l'itinéraire apparaissent en couleur.
Enfin, vous allez ajouter à votre atlas deux champ de saisie, l'un pour le départ, l'autre pour l'arrivée, et un bouton pour le calcul de l'itinéraire .
Ecrivez une classe Itinéraire qui décrit un itinéraire entre deux villes, sous forme d'une succession de villes.
Le constructeur Itinéraire
Ajoutez un attribut itineraireSelectionne dans la classe Carte et modifiez la méthode paint de manière à ce que l'itinéraire selectionné s'affiche en rouge.
Rectification
Testez votre programme, par exemple de Bordeaux à Lille. Tout doit fonctionner correctement. Testez-le ensuite du Havre à Caen. Que se passe-t-il? Pourquoi? Comment rectifier cela?
Mon probleme se situe au niveau de l'étape 5 c a d à partir de l itineraire. Je n 'arrivepas à creer la classe Itineraire ni meme la methode pour la construction du plus court chemin.
Actuellement sur mon code, j aiprobleme d'affichage aussi. Quand je selectionne une ville sur le JCombobox, un messaged'erreur s'affiche. J aimerai que quand je selectionne ne ville, celle ci s'affiche en rougeet les autres non.Je poste mon code
//la classe FileTableau
//la classe Ville
// La classe TouteslesVilles
// la classe route
// laclasse carte
// la classe Mafenetre qui extends de JFrame
// La classe TInterface, la classe appelante
Aidez moi à contruire la classe itineraire et aussi pour le probleme de l'affichage quand je selectionne une ville.
Merci
Mais c'est que ce n'est pas anodin comme problème :)
Mais c'est un problème résolu par un mathématicien du nom de Dijkstra.
Et la méthode s'appelle fort pertinement l'algorithme de Dijkstra :)
Deux liens qui pourront t'être utiles:
http://www.gpa.etsmtl.ca/cours/gpa789/pdf/Dijsktra.pdf
http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra
Bonjour,
Par rapport à ton énoncé :
et les premiers éléments donnés pour construire la classe itinéraire, je te propose ceci :
Je n'ai pas testé ce bout de code, mais soyons confiants :D
Bonne chance,
Niroken
Oops, j'ai laissé une coquille dans la méthode
Il faut inverser le sens du signe de comparaison "<".
Bonne chance,
Niroken
Et pour finir :
En fait il se peut qu'il y ait des cas ou tu ne sors jamais de la boucle puisque d'après l'algo qui t aie proposé dans ton énoncé,
il n'y a pas de vérification si l'on est déjà passé par une ville ou non.
Il suffit de tenir compte de ça pour ne pas boucler.
Enfin la meilleure solution pour ce problème est la mise en place de l'algo
de Dijkstra, cf post de Frédéric.
Bonne chance,
Niroken
merci pour vos reponses, je vais essayer de voir avec ça. J ai aussi un autre probleme sur l'affichage.Quand je choisis une ville sur le combobox, la ville selectionnée doit s'afficher en couleur
je ne sais pas pourquoi ça me donne une erreur
Merci de votre aide
Bonjour,
J'ai envie de dire : moi non plus :D
Si tu postais le messsage d'erreur ca serait plus simple pour t'aider.
Ah et puis si tu pouvais aussi poster tes fichiers de villes et de routes
je tacherai de regarder ce qui ne va pas dans ton code.
Bonne chance,
Niroken
c'est un projet pour la réalisation d un guide routier du maroc. Voici donc ce que contient le fichier ville.txt et route.txt
//Ville.txt
ceuta;51701;540;70
Tanger;90000;461;73
Larache;92000;439;111
Kenitra;14000;416;150
Rabat;10000;400;171
Casablanca;20000;376;183
Mohammedia;20800;303;177
El Jadida;24000;338;192
Safi;46000;287;225
Essaouira;44000;261;255
Agadir;80000;231;378
Taroudannt;83000;263;383
Zagora;45900;457;359
Erfoud;52200;597;320
Errachidia;52000;340;384
Azrou;53100;505;247
Sefrou;31000;514;222
Fes;30000;485;175
Taza;35000;555;168
Oujda;60000;703;127
Nador;62000;679;110
Mellila;13200;635;88
Al Hoceima;32000;579;102
Tetouan;93000;513;90
Chefchaouen;91000;500;112
Ouezzane;16200;501;143
Meknes;50000;463;187
Beni Mellal;23000;412;273
Marrakech;40000;335;319
Ouarzazate;45000;393;338
Mhamid;45400;469;399
Tata;84000;302;397
Tiznit;85000;124;422
Tarfaya;70050;47;495
Figuig;61000;754;270
// Route.txt
51701;93000;40
51701;90000;100
90000;93000;60
90000;92000;85
92000;93000;105
92000;14000;106
14000;10000;45
14000;50000;50
10000;20000;70
10000;50000;130
10000;20800;50
20000;24000;100
20000;40000;240
20000;20800;30
24000;46000;140
24000;40000;200
46000;44000;150
46000;40000;160
44000;40000;175
44000;80000;190
80000;40000;260
80000;83000;70
80000;85000;90
80000;84000;265
83000;40000;280
83000;84000;195
45900;45000;165
45900;45400;60
45900;52200;250
52200;61000;440
52200;45000;315
52200;52000;80
52000;53100;280
52000;45000;310
52000;61000;400
53100;23000;30
53100;31000;50
53100;50000;60
31000;30000;60
30000;50000;50
30000;35000;120
et pour le message d erreur quand je selectione une ville, il m affiche ceci:
nombre de ville dans le fichier route.txt: 60
nombre de ville dans le fichier Ville.txt: 35
nombre de ville dans le fichier Ville.txt: 35
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Herve.Mafenetre.itemStateChanged(Mafenetre.java:335)
at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
at javax.swing.JComboBox.contentsChanged(Unknown Source)
at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Merci pour l'aide que vous m'apportez.
Je peux vous envoyez le dossier du projet pour voir ce qu il en est comme ça peut etre vous en saurez plus.Mais je penses avoir tt mis içi.
Je compte sur votre aide
Merci à ts
Hello
J'ai donc regardé ton code et j'ai trouvé/résolu les erreurs.
Pour la majorité il y a bcp de confusion entre variables locales et membres d'une classe.
Je prend un exemple :
Ta classe MaFenetre déclare un membre
Or dans ton constructeur MaFenetre tu redéclares maroc comme ceci :
La bonne solution est de faire :
Conclusion dans ton cas : le membre maroc de Mafenetre ne sera jamais initialisé et restera à null.
Ce qui est plutot facheux pour la suite puisque quand tu changes un item
de ton combobox tu fais appel a ce bout de code :
maroc n'étant pas initialisé bim : nullPointerException
J'ai relevé les mêmes problèmes dans ta classe ToutesLesVilles avec les membres nb et tville.
Après il y a une autre "astuce" dans ton code : tu ajoutes le listener du combobox qui sélectionne les villes avant de déclarer la variable pcentre,
du coup a l'initialisation pcentre n'est pas initialisé et le code :
va péter une nullPointerException puisque pcentre est null.
Dans ce cas : c est crasseux mais ce n'est pas dramatique puisque cette erreur ne survient qu'une fois, la bonne solution consiste a déplacer l'init
de pcentre avant l'ajout du listener du combobox
Et pour finir je te poste ici les deux fichiers que j'ai corrigé :
Tu n'auras qua remettre correctement les chemins des fichiers "villes" et "routes"
Bonne chance,
Niroken
Merci bcp pour tes corrections, je vais essayer devoir ce que ça donne. En ttcas merci del'aide quevous m'apportez.
Aufait, pour le calcul du meilleur chemin entre les deux villes qu on doit selectionnées dans les combobox, comment vais je appeler cette methode dans la classe Mafenetre pour avoir le resultat c a d la distance puis afficher la route entre ces deuxvilles sur la carte
Merci d'avance
je n arrive pas à finir mon projet, j compte sur vous pourm'aider.
Merci
En fait pour calculer le plus cours chemin ce n'est pas très difficile avec
ton énoncé.
Tu ajoutes à ton objet Carte un membre Itinéraire que tu instancie par défaut dont la signature est:
et fait référence au morceau de code que je t'ai passé qqes posts avant.
NB : Revoir le code de la méthode calculeDistance() je crains qu'il soit érroné.
Tu ajoutes a ton objet Carte une methode :
Des que tu sélectionnes une ville dans ton comboBox :
- deux cas de figure :
1 c est le comboBox ville de depart
2 c est le comboBox ville d arrivee
Pour finir dès que tu appuies sur le bouton qui permet de lancer le calcul
de l itineraire tu fais :
Bonne chance,
Niroken
Bonjour,
J'ai finalisé le projet d'hervemoha par rapport à son énoncé.
Pour ceux que cela pourrait intéresser, les sources ainsi que le code
compilé sont disponibles à l'url :
http://dedikam2.com//index.php?co=co&pp=pp&dl=dl&clef=5463202e1aed1ae5d5d63f2811d8e974
Petites précisions :
- un jre version 1.5 min est requis.
- les sources sont organisées par rapport à l'ide que j'utilise : Eclipse
Niroken
Super ! :)
Merci pour le code posté mais j ai quelques problemes à son implémentation. J ai quelques erreurs pour la finir, ça me renvoie des erreurs. Je vous poste ça pour voir ce qu il en est
Je compte sur vous
Merci bcp
a plus
ohh, je n avais pas vu votre dernier message, je vais zde suite voir ce qu il en est dans ce lien. Merci bcp de votre aide. J aimerai au moins une petite explication de ce qui ne va pas sur mon code(voir dernier message).
Merci bcp
Hmmm dis donc l'ami faudrait mettre un peu de bonne volonté la :twisted:
Quand tu vois ceci dans le code de la classe carte :
et quand tu vois ceci dans ta classe itinéraire :
A quoi penses tu hmmm?
Bon moi je t'avoue je pense a un code qui n'est pas prêt de marcher :D
La méthode getVilleDepart() ainsi que getVilleArrivee devrait avoir les signatures :
Ensuite si tu leur mettais un petit qq chose dedans par exemple :
Ca devrait aller mieux :)
Bon allez jte laisse finir!
Bonne chance,
Niroken
Ca serait un minimum :lol: :lol:
Au fait Niroken, quand nous mets tu en ligne un super tuto ? Tu as vu ? En plus des cent Euro, il y a une licence ALLCpature à gagner désormais :)
Le monde Java c'est tellement grand, tu vas bien trouver un sujet :)
ok et merci pour votre conseil, j essaiyerai d y mettre plus du coeur. Au fait pour celui que vous avez compilé, quand je l importe comment je faais pour la classpath?
merci
La version compilée contient :
1 dossier d'input avec Villes.txt et Routes.txt
1 le MyAtlas.jar
1 runMyAtlas.bat
1 setEnv.bat
Pour executer le jar il suffit donc de cliquer sur le runMyAtlas.bat.
Pour info, le runMyAtlas.bat à cette tete :
et le setEnv.bat ressemble à ceci :
Si tu regardes attentivement tu verras que le classpath est donc setté
par les directives du setEnv.bat.
Conclusion : sous réserve que tout se passe bien tu n'as qu'a double cliquer sur le runMyAtlas.bat
Bonne chance,
Niroken
Oui j ai fait ce que vous m aviez conseiller mais je me bute face à un problème, la methode
et la methode
Merci de votre aide et si vous avez un peu de temps, j aimerai une petite explication de la maniere dont vous avez fait ce mme projet :D .
Pour celui qui n 'est pas compilé(SRC), comment fait on pour les fichiers Villes.txt et Routes.txt.
a pluq et merci encore
Je me permets d'intervenir sans vraiment avoir suivi la discussion mais
Une méthode getcoordonnes (qui devrait d'ailleurs être renommée en getCoodonnees dans les conventions Java), si l'on en croit son nom, retourne quelque chose. Ce quelque chose est probablement des coordonnées d'ailleurs. ;)
Bref la méthode ne peut pas avoir une signature void :!:
C'est un point que notre ami Niroken avait bien expliqué plus tôt dans la discussion je crois.
oui je sais que cette signature doit retourner des choses, les coordonnées sont des entires, ça doit avoir cette forme :
Tu peux les mettre dans un conteneur. Une ArrayList par exemple
Ou s'il y a très peu de données à traiter, peut être simplement un tableau
public int[] getCoordonnées(){}
Hello,
Hmm, je veux bien t 'expliquer ca posément, il faudrait que tu m'envoies ton msn.
En effet, la j'ai oublié d'intégrer les fichiers Villes.txt et Routes.txt dans le zip SRC, tu peux les récupérer depuis le l'autre zip.
Tu dois garder à l'esprit que ces fichiers doivent être dans le classpath de l'application si tu veux que ca marche bien :D
D'ailleurs, mon conseil d'une manière générale est de toujours mettre les fichiers de confs ou de paramètres dans le classpath de l'appli :
- La config de l'appli ne se fera qu'a un seul endroit : ici dans le setEnv.bat
- Les chemins de tes fichiers ne sont pas en dur dans le code ce qui est bcp plus souple, si tu veux changer un chemin tu n'es pas obligé de recompiler :)
Bonne chance,
Niroken
ok ok mais je n ai pas tres bien compris, je vous envoie mon msn par msg privé. Et pour les mes deux methodes qui bloquent mon apli, qu en dites vous?
Pour les méthodes qui te posent problème il faut voir le problème comme suit :
Des coordonnées ce sont des points, j'avais utilisé la classe Point de java.awt, le code correspondant devrait ressembler à ca.
Bonne chance,
Niroken