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
// la classe carte
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Carte extends JPanel{
private static final long serialVersionUID = -4216707929142555363L;
public Carte(ToutesLesVilles maroc){
setSize(1000,1000);
t=maroc.charger("C:/Documents and Settings/guy mena/Bureau/eclipse/Ville.txt");
}
public void paint(Graphics g)
{
super.paint(g);
Font f = new Font("time new roman", 2,11);
g.setFont(f);
if(villeSelectionnee!=null)
{
for(int i=0; i < t.length; i++)
{
if(t[i].getNom().equals(villeSelectionnee.getNom()))
{
g.setColor(Color.red);
g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2);
g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2);
}
else
{
g.setColor(Color.black);
g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2);
g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2);
}
}
}
else
{
for(int i=0; i < t.length; i++)
{
g.setColor(Color.black);
g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2);
g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2);
}
}
}
public void update (Graphics g){
super.update(g);
paint(g);
}
public 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);
}
}
public Ville getVilleselectionnee(){
return villeSelectionnee;
}
public void setVilleSelectionnee(Ville villeSelectionnee){
this.villeSelectionnee = villeSelectionnee;
}
private Ville t[];
private Ville villeSelectionnee;
Itineraire itineraireSelectionne, mItineraire;
}
// la classe Itineraire
import java.awt.List;
import java.util.ArrayList;
public class Itineraire {
Ville [] villes;
Ville ville;
Itineraire itineraireSelectionne ;
private int meilleureVille;
private int meilleureDistance;
private int [][] matriceDistance;
private int[] tabDistance;
private int[] ville1;
private int[] ville2;
private int[] tabTotal;
private int[][] tabVille1;
private int[][] tabVille2;
private int[][] tabDistancebis;
private int[] tabTotalbis;
Ville mVilleDepart;
Ville mVilleArrivee;
ArrayList<Ville> mVillesParcourues;
public Itineraire() {
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(ArrayList<Ville> villesParcourues){
}
public Itineraire(Ville pVilleDepart,Ville pVilleArrivee){
mVilleDepart = pVilleDepart;
mVilleArrivee = pVilleArrivee;
mVillesParcourues = new ArrayList<Ville>();
}
public Ville getVilleParNom(String nomVille){
return ville;
}
public boolean contains(Ville v){
for(int i=0;i<villes.length;i++)
{
if (villes[i]==v) return true; //oui
}
return false; //non
}
public void setItineraireSelectionne(Itineraire i){
this.itineraireSelectionne = i;
}
public void construireItineraire(){
int ligne, colonne,cptVille,testVilleExistante,total,touteVille;
touteVille=0;
this.meilleureVille=-1;
this.meilleureDistance=1000000;
while (touteVille<this.matriceDistance.length){
ligne=0;
colonne=0;
cptVille=0;
testVilleExistante=0;
total=0;
for(int j=0;j<this.matriceDistance.length;j++){
this.tabDistance[j] = 1000000;
}
this.ville1[cptVille] = touteVille;
if (this.matriceDistance[ville1[cptVille]][colonne] == -1){
colonne++;
}
this.ville2[cptVille]=colonne;
this.tabDistance[cptVille]=this.matriceDistance[ville1[cptVille]][ville2[cptVille]];
colonne++;
while(ligne < ((this.matriceDistance.length-1))){
while(colonne < ((this.matriceDistance.length-1))){
while (testVilleExistante<=cptVille)
{
if (colonne == this.ville1[testVilleExistante])
{
colonne++;
testVilleExistante=-1;
}
testVilleExistante++;
}
testVilleExistante=0;
if ((colonne < this.matriceDistance.length) && (this.matriceDistance[ville1[cptVille]][colonne] != -1))
{
if (this.tabDistance[cptVille] > this.matriceDistance[ville1[cptVille]][colonne])
{
this.tabDistance[cptVille] = this.matriceDistance[ville1[cptVille]][colonne];
this.ville2[cptVille] = colonne;
}
}
colonne++;
}
colonne = 0;
ville1[cptVille+1] = ville2[cptVille];
cptVille++;
ligne++;
}
this.ville2[cptVille]=touteVille;
this.tabDistance[cptVille]=this.matriceDistance[this.ville1[cptVille]][this.ville2[cptVille]];
for(int j=0;j<this.matriceDistance.length;j++)
{
total=total+this.tabDistance[j];
}
this.tabTotal[touteVille]=total;
for(int k=0;k<this.matriceDistance.length;k++)
{
this.tabVille1[touteVille][k]=ville1[k];
this.tabVille2[touteVille][k]=ville2[k];
this.tabDistancebis[touteVille][k]=this.tabDistance[k];
this.tabTotalbis[touteVille]=total;
}
touteVille++;
}
for(int j=0;j<this.matriceDistance.length;j++)
{
if (this.meilleureDistance > this.tabTotal[j])
{
this.meilleureDistance=this.tabTotal[j];
this.meilleureVille=j;
}
}
System.out.println();
}
}
// la classe Mafenetre
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Mafenetre extends JFrame implements ActionListener, ItemListener{
//la barre de menus
JMenuBar br = new JMenuBar();
// Déclaration des menus
JMenu F = new JMenu("Fichier");
JMenu E = new JMenu("Help");
JMenu A = new JMenu("Affichage");
//Declarations des items de menus
JMenuItem A_C = new JMenuItem("Afficher les informations d une ville");
JMenuItem Q = new JMenuItem("Quitter");
JMenuItem C_A = new JMenuItem("Centre d aide");
JMenuItem A_P = new JMenuItem("A propos du logiciel");
JMenuItem C_C = new JMenuItem("Couleur de fond");
//déclaration de panels
private Carte pcentre;
JPanel pest = new JPanel();
JPanel pestn = new JPanel();
JPanel pestc = new JPanel();
JPanel psud = new JPanel();
JPanel pnord = new JPanel();
JPanel pnord1 = new JPanel();
JComboBox cb = new JComboBox();
JComboBox cc = new JComboBox();
public static final String[] nomcombo = {"dont le nom est","dont le code postale est"};
JComboBox crech = new JComboBox(nomcombo);
JLabel lvdep = new JLabel("Ville de départ");
JLabel lvar = new JLabel("Ville d'arrivée");
JLabel lval = new JLabel("Valider");
JLabel ldist = new JLabel("Distance :");
JLabel ltemp = new JLabel("Temps :");
JLabel lvp = new JLabel("Ville Proche:");
JLabel lrech = new JLabel("Recherche d'une ville");
JLabel nomv = new JLabel("Nom ville");
JLabel cdp = new JLabel("Code postal");
JTextField trech = new JTextField(20);
JTextField ldistr= new JTextField(10);
JTextField ltempr= new JTextField(10);
JTextField nomvr = new JTextField(10);
JTextField cdpr = new JTextField(10);
//JButton rech = new JButton("rechercher");
JButton bok = new JButton("OK");
JButton brech = new JButton("Rechercher");
private Ville[] t;
private ToutesLesVilles maroc;
public Mafenetre()
{
//Parametre de la fenetre, titre, taille, dimension
this.setTitle("Réalisation d'un Maroc Routier");
this.setSize(1024,768);
this.setLayout(new BorderLayout(15,10));
ldistr.setEditable(false);
ltempr.setEditable(false);
//nomvr.setEditable(false);
//cdpr.setEditable(false);
maroc=new ToutesLesVilles();
t=maroc.charger("C:/Documents and Settings/guy mena/Bureau/eclipse/Ville.txt");
for(int i=0; i < t.length; i++)
{
try{
cb.addItem(t[i].getNom());
cc.addItem(t[i].getNom());
}
catch(Exception a)
{ }
}
pcentre = new Carte(maroc);
//Ecouteur sur le combobox
cb.addItemListener(this);
cc.addItemListener(this);
//Ecouteur pour sortir de l application
Q.addActionListener(this);
//Ecouteur dans le menu affichage
C_C.addActionListener(this);
C_C.setToolTipText("Changer la couleur de fond");
//Ecouteur sur le menu afficher les infos d une ville
A_C.addActionListener(this);
//ecouteur sur A_P
A_P.addActionListener(this);
//Ajout des items sur le menu fichier
F.add(A_C);
F.add(Q);
//Ajout des items sur le menu aide
E.add(C_A);
E.add(A_P);
//Ajout d un item sur le menu affichage
A.add(C_C);
//Ajout des menus : fichier et help sur la barre de menus
br.add(F);
br.add(A);
br.add(E);
//mettre la barre de menus sur la frame
this.setJMenuBar(br);
//Proprieté de la frame une qui va contenir la carte
//pcentre.setBackground(Color.red);
//Proprietés de la frame trois qui va contenir nos 2 labels avec les noms des réalisateurs et de l encadrant
psud.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Choix"));
psud.setLayout(new BoxLayout(psud,BoxLayout.X_AXIS));
psud.add(Box.createHorizontalStrut(20));
psud.add(lvdep);
psud.add(Box.createHorizontalStrut(10));
psud.add(cb);
psud.add(Box.createHorizontalStrut(20));
psud.add(lvar);
psud.add(Box.createHorizontalStrut(10));
psud.add(cc);
psud.add(Box.createHorizontalStrut(20));
psud.add(bok);
//panel nord
pnord.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Rechercher une ville"));
pnord.setLayout(new BorderLayout());
pnord.add(pnord1, BorderLayout.CENTER);
pnord.setToolTipText("Rechercher une ville sur la carte");
//panel nord 1 qui contient la zone de recherche
//pnord1.setLayout(new BoxLayout(pnord1,BoxLayout.X_AXIS));
pnord1.add(lrech);
pnord1.add(Box.createHorizontalStrut(1));
pnord1.add(crech);
pnord1.add(trech);
pnord1.add(brech);
//panel est
pest.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Resultat"));
pest.setLayout(new BorderLayout());
//panel est nord
pestn.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = gbc.gridy = 0;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0;
gbc.weighty = 0;
gbc.insets = new Insets(10, 15, 0, 0);
pestn.add(ldist, gbc);
gbc.gridx =1;
gbc.gridy =0;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0;
gbc.weighty = 0;
gbc.insets = new Insets(10, 15, 0, 0);
pestn.add(ldistr, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0;
gbc.weighty = 0;
gbc.insets = new Insets(10, 15, 0, 0);
pestn.add(ltemp, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0;
gbc.weighty = 0;
gbc.insets = new Insets(10, 15, 0, 0);
pestn.add(ltempr, gbc);
//panel est centre
pestc.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Infos sur ville"));
pestc.setLayout(new GridBagLayout());
GridBagConstraints gbcd = new GridBagConstraints();
gbcd.gridx = gbc.gridy = 0;
gbcd.gridwidth = 1;
gbcd.gridheight = 1;
gbcd.weightx = 0;
gbcd.weighty = 0;
gbcd.insets = new Insets(10, 15, 0, 0);
pestc.add(nomv, gbcd);
gbcd.gridx =1;
gbcd.gridy =0;
gbcd.gridwidth = 1;
gbcd.gridheight = 1;
gbcd.weightx = 0;
gbcd.weighty = 0;
gbcd.insets = new Insets(10, 15, 0, 0);
pestc.add(nomvr, gbcd);
gbcd.gridx = 0;
gbcd.gridy = 1;
gbcd.gridwidth = 1;
gbcd.gridheight = 1;
gbcd.weightx = 0;
gbcd.weighty = 0;
gbcd.insets = new Insets(10, 15, 0, 0);
pestc.add(cdp, gbcd);
gbcd.gridx = 1;
gbcd.gridy = 1;
gbcd.gridwidth = 1;
gbcd.gridheight = 1;
gbcd.weightx = 0;
gbcd.weighty = 0;
gbcd.insets = new Insets(10, 15, 0, 0);
pestc.add(cdpr, gbcd);
pest.add(pestn, BorderLayout.NORTH);
pest.add(pestc, BorderLayout.CENTER);
//Ajouter nos panels sur la frame
this.add(pcentre,BorderLayout.CENTER);
this.add(pest,BorderLayout.EAST);
this.add(psud,BorderLayout.SOUTH);
this.add(pnord,BorderLayout.NORTH);
}
/* public void itemStateChanged (ItemEvent e){
if(e.getStateChange() == ItemEvent.SELECTED){
String texte = (String)cb.getSelectedItem();
try{
pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte));
pcentre.updateUI();
}
catch(Exception e1){
e1.printStackTrace();
}
}
} */
/* public void itemStateChanged(ItemEvent e){
if(e.getSource()== cb){
if(e.getStateChange() == ItemEvent.SELECTED){
String texte = (String)cb.getSelectedItem();
try{
pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte));
pcentre.updateUI();
}
catch(Exception e1){
e1.printStackTrace();
}
}
}
if(e.getSource() == cc){
if(e.getStateChange() == ItemEvent.SELECTED){
String texte = (String)cc.getSelectedItem();
try{
pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte));
pcentre.updateUI();
}
catch(Exception e1){
e1.printStackTrace();
}
}
}
}*/
public void itemStateChanged(ItemEvent e) {
if (e.getSource().equals(cb)) {
pcentre.getItineraire().setVilleDepart(#LaVilleSelectionnee#);
} else if (e.getSource().equals(cc)) {
pcentre.getItineraire().setVilleArrivee(#LaVilleSelectionnee#);
}
pcentre.updateUI();
}
public void actionPerformed(ActionEvent argo) {
//Object source = argo.getSource();
//int source = JFrame.EXIT_ON_CLOSE;
if(argo.getSource() == Q)
{
int result = JOptionPane.showConfirmDialog(pcentre,"Voulez vous vraiment quittez l application","Quitter application",JOptionPane.YES_NO_OPTION);
if(result == JOptionPane.YES_OPTION) System.exit(0);
}
if(argo.getSource() == C_C)
{
Color color = JColorChooser.showDialog(this,"Choix d'une couleur",Color.RED);
pnord1.setBackground(color);
pnord.setBackground(color);
psud.setBackground(color);
pest.setBackground(color);
pestn.setBackground(color);
pestc.setBackground(color);
}
if(argo.getSource() == A_C)
{
String string = JOptionPane.showInputDialog(null, "Entrez le nom de la ville") ;
int rep = 0;
if( string != null)
{
//System.out.println ("vous avez tapez:"+ string);
for(int i=0; i<t.length; i++){
if(t[i].getNom().equalsIgnoreCase(string)){
System.out.println ("vous avez tapez:"+ string);
System.out.println(+ t[i].getCode());
nomvr.setText(t[i].getNom());
try{
pcentre.setVilleSelectionnee(maroc.getVilleParNom(string));
pcentre.updateUI();
}
catch(Exception e1){
e1.printStackTrace();
}
//cdpr.setText(String(t[i].getCode()));
}
/* if (t[i].getNom() != string){
JOptionPane.showMessageDialog(this, "Entrer une ville");
string = JOptionPane.showInputDialog(null, "Entrez le nom de la ville") ;
}*/
}
}
}
if(argo.getSource() == brech)
{
for(int i = 0; i<t.length;i++){
if(trech.getText().equals(t[i].getNom()))
System.out.println("vous avez choisi"+ trech.getText());}
}
}
}
Je compte sur vous
Merci bcp
a plus
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
// la classe carte import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import javax.swing.JPanel; public class Carte extends JPanel{ private static final long serialVersionUID = -4216707929142555363L; public Carte(ToutesLesVilles maroc){ setSize(1000,1000); t=maroc.charger("C:/Documents and Settings/guy mena/Bureau/eclipse/Ville.txt"); } public void paint(Graphics g) { super.paint(g); Font f = new Font("time new roman", 2,11); g.setFont(f); if(villeSelectionnee!=null) { for(int i=0; i < t.length; i++) { if(t[i].getNom().equals(villeSelectionnee.getNom())) { g.setColor(Color.red); g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2); g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2); } else { g.setColor(Color.black); g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2); g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2); } } } else { for(int i=0; i < t.length; i++) { g.setColor(Color.black); g.drawString(t[i].getNom(), t[i].getLongitude()-25, t[i].getLatitude()-2); g.fillRect(t[i].getLongitude(), t[i].getLatitude(), 2, 2); } } } public void update (Graphics g){ super.update(g); paint(g); } public 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); } } public Ville getVilleselectionnee(){ return villeSelectionnee; } public void setVilleSelectionnee(Ville villeSelectionnee){ this.villeSelectionnee = villeSelectionnee; } private Ville t[]; private Ville villeSelectionnee; Itineraire itineraireSelectionne, mItineraire; }// la classe Itineraire import java.awt.List; import java.util.ArrayList; public class Itineraire { Ville [] villes; Ville ville; Itineraire itineraireSelectionne ; private int meilleureVille; private int meilleureDistance; private int [][] matriceDistance; private int[] tabDistance; private int[] ville1; private int[] ville2; private int[] tabTotal; private int[][] tabVille1; private int[][] tabVille2; private int[][] tabDistancebis; private int[] tabTotalbis; Ville mVilleDepart; Ville mVilleArrivee; ArrayList<Ville> mVillesParcourues; public Itineraire() { 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(ArrayList<Ville> villesParcourues){ } public Itineraire(Ville pVilleDepart,Ville pVilleArrivee){ mVilleDepart = pVilleDepart; mVilleArrivee = pVilleArrivee; mVillesParcourues = new ArrayList<Ville>(); } public Ville getVilleParNom(String nomVille){ return ville; } public boolean contains(Ville v){ for(int i=0;i<villes.length;i++) { if (villes[i]==v) return true; //oui } return false; //non } public void setItineraireSelectionne(Itineraire i){ this.itineraireSelectionne = i; } public void construireItineraire(){ int ligne, colonne,cptVille,testVilleExistante,total,touteVille; touteVille=0; this.meilleureVille=-1; this.meilleureDistance=1000000; while (touteVille<this.matriceDistance.length){ ligne=0; colonne=0; cptVille=0; testVilleExistante=0; total=0; for(int j=0;j<this.matriceDistance.length;j++){ this.tabDistance[j] = 1000000; } this.ville1[cptVille] = touteVille; if (this.matriceDistance[ville1[cptVille]][colonne] == -1){ colonne++; } this.ville2[cptVille]=colonne; this.tabDistance[cptVille]=this.matriceDistance[ville1[cptVille]][ville2[cptVille]]; colonne++; while(ligne < ((this.matriceDistance.length-1))){ while(colonne < ((this.matriceDistance.length-1))){ while (testVilleExistante<=cptVille) { if (colonne == this.ville1[testVilleExistante]) { colonne++; testVilleExistante=-1; } testVilleExistante++; } testVilleExistante=0; if ((colonne < this.matriceDistance.length) && (this.matriceDistance[ville1[cptVille]][colonne] != -1)) { if (this.tabDistance[cptVille] > this.matriceDistance[ville1[cptVille]][colonne]) { this.tabDistance[cptVille] = this.matriceDistance[ville1[cptVille]][colonne]; this.ville2[cptVille] = colonne; } } colonne++; } colonne = 0; ville1[cptVille+1] = ville2[cptVille]; cptVille++; ligne++; } this.ville2[cptVille]=touteVille; this.tabDistance[cptVille]=this.matriceDistance[this.ville1[cptVille]][this.ville2[cptVille]]; for(int j=0;j<this.matriceDistance.length;j++) { total=total+this.tabDistance[j]; } this.tabTotal[touteVille]=total; for(int k=0;k<this.matriceDistance.length;k++) { this.tabVille1[touteVille][k]=ville1[k]; this.tabVille2[touteVille][k]=ville2[k]; this.tabDistancebis[touteVille][k]=this.tabDistance[k]; this.tabTotalbis[touteVille]=total; } touteVille++; } for(int j=0;j<this.matriceDistance.length;j++) { if (this.meilleureDistance > this.tabTotal[j]) { this.meilleureDistance=this.tabTotal[j]; this.meilleureVille=j; } } System.out.println(); } }// la classe Mafenetre import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class Mafenetre extends JFrame implements ActionListener, ItemListener{ //la barre de menus JMenuBar br = new JMenuBar(); // Déclaration des menus JMenu F = new JMenu("Fichier"); JMenu E = new JMenu("Help"); JMenu A = new JMenu("Affichage"); //Declarations des items de menus JMenuItem A_C = new JMenuItem("Afficher les informations d une ville"); JMenuItem Q = new JMenuItem("Quitter"); JMenuItem C_A = new JMenuItem("Centre d aide"); JMenuItem A_P = new JMenuItem("A propos du logiciel"); JMenuItem C_C = new JMenuItem("Couleur de fond"); //déclaration de panels private Carte pcentre; JPanel pest = new JPanel(); JPanel pestn = new JPanel(); JPanel pestc = new JPanel(); JPanel psud = new JPanel(); JPanel pnord = new JPanel(); JPanel pnord1 = new JPanel(); JComboBox cb = new JComboBox(); JComboBox cc = new JComboBox(); public static final String[] nomcombo = {"dont le nom est","dont le code postale est"}; JComboBox crech = new JComboBox(nomcombo); JLabel lvdep = new JLabel("Ville de départ"); JLabel lvar = new JLabel("Ville d'arrivée"); JLabel lval = new JLabel("Valider"); JLabel ldist = new JLabel("Distance :"); JLabel ltemp = new JLabel("Temps :"); JLabel lvp = new JLabel("Ville Proche:"); JLabel lrech = new JLabel("Recherche d'une ville"); JLabel nomv = new JLabel("Nom ville"); JLabel cdp = new JLabel("Code postal"); JTextField trech = new JTextField(20); JTextField ldistr= new JTextField(10); JTextField ltempr= new JTextField(10); JTextField nomvr = new JTextField(10); JTextField cdpr = new JTextField(10); //JButton rech = new JButton("rechercher"); JButton bok = new JButton("OK"); JButton brech = new JButton("Rechercher"); private Ville[] t; private ToutesLesVilles maroc; public Mafenetre() { //Parametre de la fenetre, titre, taille, dimension this.setTitle("Réalisation d'un Maroc Routier"); this.setSize(1024,768); this.setLayout(new BorderLayout(15,10)); ldistr.setEditable(false); ltempr.setEditable(false); //nomvr.setEditable(false); //cdpr.setEditable(false); maroc=new ToutesLesVilles(); t=maroc.charger("C:/Documents and Settings/guy mena/Bureau/eclipse/Ville.txt"); for(int i=0; i < t.length; i++) { try{ cb.addItem(t[i].getNom()); cc.addItem(t[i].getNom()); } catch(Exception a) { } } pcentre = new Carte(maroc); //Ecouteur sur le combobox cb.addItemListener(this); cc.addItemListener(this); //Ecouteur pour sortir de l application Q.addActionListener(this); //Ecouteur dans le menu affichage C_C.addActionListener(this); C_C.setToolTipText("Changer la couleur de fond"); //Ecouteur sur le menu afficher les infos d une ville A_C.addActionListener(this); //ecouteur sur A_P A_P.addActionListener(this); //Ajout des items sur le menu fichier F.add(A_C); F.add(Q); //Ajout des items sur le menu aide E.add(C_A); E.add(A_P); //Ajout d un item sur le menu affichage A.add(C_C); //Ajout des menus : fichier et help sur la barre de menus br.add(F); br.add(A); br.add(E); //mettre la barre de menus sur la frame this.setJMenuBar(br); //Proprieté de la frame une qui va contenir la carte //pcentre.setBackground(Color.red); //Proprietés de la frame trois qui va contenir nos 2 labels avec les noms des réalisateurs et de l encadrant psud.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Choix")); psud.setLayout(new BoxLayout(psud,BoxLayout.X_AXIS)); psud.add(Box.createHorizontalStrut(20)); psud.add(lvdep); psud.add(Box.createHorizontalStrut(10)); psud.add(cb); psud.add(Box.createHorizontalStrut(20)); psud.add(lvar); psud.add(Box.createHorizontalStrut(10)); psud.add(cc); psud.add(Box.createHorizontalStrut(20)); psud.add(bok); //panel nord pnord.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Rechercher une ville")); pnord.setLayout(new BorderLayout()); pnord.add(pnord1, BorderLayout.CENTER); pnord.setToolTipText("Rechercher une ville sur la carte"); //panel nord 1 qui contient la zone de recherche //pnord1.setLayout(new BoxLayout(pnord1,BoxLayout.X_AXIS)); pnord1.add(lrech); pnord1.add(Box.createHorizontalStrut(1)); pnord1.add(crech); pnord1.add(trech); pnord1.add(brech); //panel est pest.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Resultat")); pest.setLayout(new BorderLayout()); //panel est nord pestn.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = gbc.gridy = 0; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.weightx = 0; gbc.weighty = 0; gbc.insets = new Insets(10, 15, 0, 0); pestn.add(ldist, gbc); gbc.gridx =1; gbc.gridy =0; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.weightx = 0; gbc.weighty = 0; gbc.insets = new Insets(10, 15, 0, 0); pestn.add(ldistr, gbc); gbc.gridx = 0; gbc.gridy = 1; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.weightx = 0; gbc.weighty = 0; gbc.insets = new Insets(10, 15, 0, 0); pestn.add(ltemp, gbc); gbc.gridx = 1; gbc.gridy = 1; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.weightx = 0; gbc.weighty = 0; gbc.insets = new Insets(10, 15, 0, 0); pestn.add(ltempr, gbc); //panel est centre pestc.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Infos sur ville")); pestc.setLayout(new GridBagLayout()); GridBagConstraints gbcd = new GridBagConstraints(); gbcd.gridx = gbc.gridy = 0; gbcd.gridwidth = 1; gbcd.gridheight = 1; gbcd.weightx = 0; gbcd.weighty = 0; gbcd.insets = new Insets(10, 15, 0, 0); pestc.add(nomv, gbcd); gbcd.gridx =1; gbcd.gridy =0; gbcd.gridwidth = 1; gbcd.gridheight = 1; gbcd.weightx = 0; gbcd.weighty = 0; gbcd.insets = new Insets(10, 15, 0, 0); pestc.add(nomvr, gbcd); gbcd.gridx = 0; gbcd.gridy = 1; gbcd.gridwidth = 1; gbcd.gridheight = 1; gbcd.weightx = 0; gbcd.weighty = 0; gbcd.insets = new Insets(10, 15, 0, 0); pestc.add(cdp, gbcd); gbcd.gridx = 1; gbcd.gridy = 1; gbcd.gridwidth = 1; gbcd.gridheight = 1; gbcd.weightx = 0; gbcd.weighty = 0; gbcd.insets = new Insets(10, 15, 0, 0); pestc.add(cdpr, gbcd); pest.add(pestn, BorderLayout.NORTH); pest.add(pestc, BorderLayout.CENTER); //Ajouter nos panels sur la frame this.add(pcentre,BorderLayout.CENTER); this.add(pest,BorderLayout.EAST); this.add(psud,BorderLayout.SOUTH); this.add(pnord,BorderLayout.NORTH); } /* public void itemStateChanged (ItemEvent e){ if(e.getStateChange() == ItemEvent.SELECTED){ String texte = (String)cb.getSelectedItem(); try{ pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte)); pcentre.updateUI(); } catch(Exception e1){ e1.printStackTrace(); } } } */ /* public void itemStateChanged(ItemEvent e){ if(e.getSource()== cb){ if(e.getStateChange() == ItemEvent.SELECTED){ String texte = (String)cb.getSelectedItem(); try{ pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte)); pcentre.updateUI(); } catch(Exception e1){ e1.printStackTrace(); } } } if(e.getSource() == cc){ if(e.getStateChange() == ItemEvent.SELECTED){ String texte = (String)cc.getSelectedItem(); try{ pcentre.setVilleSelectionnee(maroc.getVilleParNom(texte)); pcentre.updateUI(); } catch(Exception e1){ e1.printStackTrace(); } } } }*/ public void itemStateChanged(ItemEvent e) { if (e.getSource().equals(cb)) { pcentre.getItineraire().setVilleDepart(#LaVilleSelectionnee#); } else if (e.getSource().equals(cc)) { pcentre.getItineraire().setVilleArrivee(#LaVilleSelectionnee#); } pcentre.updateUI(); } public void actionPerformed(ActionEvent argo) { //Object source = argo.getSource(); //int source = JFrame.EXIT_ON_CLOSE; if(argo.getSource() == Q) { int result = JOptionPane.showConfirmDialog(pcentre,"Voulez vous vraiment quittez l application","Quitter application",JOptionPane.YES_NO_OPTION); if(result == JOptionPane.YES_OPTION) System.exit(0); } if(argo.getSource() == C_C) { Color color = JColorChooser.showDialog(this,"Choix d'une couleur",Color.RED); pnord1.setBackground(color); pnord.setBackground(color); psud.setBackground(color); pest.setBackground(color); pestn.setBackground(color); pestc.setBackground(color); } if(argo.getSource() == A_C) { String string = JOptionPane.showInputDialog(null, "Entrez le nom de la ville") ; int rep = 0; if( string != null) { //System.out.println ("vous avez tapez:"+ string); for(int i=0; i<t.length; i++){ if(t[i].getNom().equalsIgnoreCase(string)){ System.out.println ("vous avez tapez:"+ string); System.out.println(+ t[i].getCode()); nomvr.setText(t[i].getNom()); try{ pcentre.setVilleSelectionnee(maroc.getVilleParNom(string)); pcentre.updateUI(); } catch(Exception e1){ e1.printStackTrace(); } //cdpr.setText(String(t[i].getCode())); } /* if (t[i].getNom() != string){ JOptionPane.showMessageDialog(this, "Entrer une ville"); string = JOptionPane.showInputDialog(null, "Entrez le nom de la ville") ; }*/ } } } if(argo.getSource() == brech) { for(int i = 0; i<t.length;i++){ if(trech.getText().equals(t[i].getNom())) System.out.println("vous avez choisi"+ trech.getText());} } } }Je compte sur vous
Merci bcp
a plus