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:
public class Itineraire {
Ville mVilleDepart;
Ville mVilleArrivee;
List<Ville> mVillesParcourues;
public Itineraire() {
mVillesParcourues = new ArrayList<Ville>();
}
public Itineraire(Ville pVilleDepart, Ville pVilleArrivee) {
mVilleDepart = pVilleDepart;
mVilleArrivee = pVilleArrivee;
mVillesParcourues = new ArrayList<Ville>();
}
public void calculeItineraire();
public void getVilleDepart();
public void getVilleArrivee();
public void getVillesParcourues();
public void setVilleDepart(Ville villeDepart);
public void setVilleArrivee(Ville villeArrivee);
public void setVillesParcourues(List<Ville> villesParcourues);
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 :
private void dessineItineraire(Graphics g) {
g.setColor(Color.blue);
if (mItineraire.getVilleDepart() != null) {
g.drawString(
mItineraire.getVilleDepart().getNom(),
mItineraire.getVilleDepart().getCoordonnees().x - 12,
mItineraire.getVilleDepart().getCoordonnees().y - 2);
g.fillRect(
mItineraire.getVilleDepart().getCoordonnees().x,
mItineraire.getVilleDepart().getCoordonnees().y,
2,
2);
}
if (mItineraire.getVilleArrivee() != null) {
g.drawString(
mItineraire.getVilleArrivee().getNom(),
mItineraire.getVilleArrivee().getCoordonnees().x - 12,
mItineraire.getVilleArrivee().getCoordonnees().y - 2);
g.fillRect(
mItineraire.getVilleArrivee().getCoordonnees().x,
mItineraire.getVilleArrivee().getCoordonnees().y,
2,
2);
}
for (int i = 0; i < mItineraire.getVillesParcourues().size() - 1; i++) {
g.drawLine(
mItineraire.getVillesParcourues().get(i).getCoordonnees().x,
mItineraire.getVillesParcourues().get(i).getCoordonnees().y,
mItineraire.getVillesParcourues().get(i + 1).getCoordonnees().x,
mItineraire.getVillesParcourues().get(i + 1).getCoordonnees().y);
}
}
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
public void itemStateChanged(ItemEvent e) {
if (e.getSource().equals(mComboBoxVilleDepart)) {
pcentre.getItineraire().setVilleDepart(#LaVilleSelectionnee#);
} else if (e.getSource().equals(mComboBoxVilleArrivee)) {
pcentre.getItineraire().setVilleArrivee(#LaVilleSelectionnee#);
}
pcentre.updateUi();
}
Pour finir dès que tu appuies sur le bouton qui permet de lancer le calcul
de l itineraire tu fais :
public void actionPerformed(ActionEvent e) {
pcentre.getItineraire().calculeItineraire();
}
Bonne chance,
Niroken
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