Yop, j'ai un pb pour mettre à jour ma frame. Mon bouton de choix ne s'actualise pas et je n'arrive pas à remedier à ce facheux pb.
Donc si quelqu'un peut éclairer ma lanterne ...

import java.io.*; // Inclusion du paquet d'E/S système
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Classe 'metro'
* @author J.Humbert, F.Bosc, A.Conus
* @version 1.0
*/
public class Metro {
static String ville = "madrid.data";
public static String getVille() {
return ville;
}
public static void setVille(String ville) {
Metro.ville = ville;
}
public static void main(String args[])throws IOException{
String villeChoisie = getVille();
MetroFrame frame = new MetroFrame(villeChoisie);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
/**
* Un cadre pour l'application ...
*/
class MetroFrame extends JFrame {
private JTextPane display;private JTextPane display2;
private TextArea lignes;
private JComboBox tmp_avant,tmp_apres;
private JTextField txt;
public JButton bouton,bouton2, bouton3;
private boolean start;
private JComboBox combo,combo2,combo3,combo4;
public Reseau res;
public MetroFrame(String ville)throws IOException {
super ("Metro ");// pour créer une fenetre graphique
res=new Reseau(ville);
setLayout(null);
setResizable(false);
setBackground(Color.white);
setSize(650, 480);
setLocation(370, 220);
start = true;
add (lignes=new TextArea ()).setBounds(100,20,350,400);
lignes.setVisible(false);
add(display = new JTextPane()).setBounds(10,10,620,150);
display.setBackground(Color.black);
display.setEnabled(false);
display.setVisible(false);
add(display2 = new JTextPane()).setBounds(10,240,620,150);
display2.setBackground(Color.black);
display2.setEnabled(false);
display2.setVisible(false);
add(bouton2 = new JButton("station de depart")).setBounds(10,10 , 150,20);
bouton2.setEnabled(false);
add(bouton3 = new JButton("station d'arrivée")).setBounds(250,10 , 150,20);
bouton3.setEnabled(false);
add(combo4 = new JComboBox()).setBounds(10,30,200,30);
combo4.setVisible(false);
add(txt=new JTextField()).setBounds(200,30,200,30);
txt.setVisible(false);
actualiser();
add(tmp_avant = new JComboBox()).setBounds(100,100,50,30);
add(tmp_apres = new JComboBox()).setBounds(250,100,50,30);
tmp_avant.addItem("1");
tmp_avant.addItem("2");
tmp_avant.addItem("3");
tmp_avant.addItem("4");
tmp_avant.addItem("5");
tmp_apres.addItem("1");
tmp_apres.addItem("2");
tmp_apres.addItem("3");
tmp_apres.addItem("4");
tmp_apres.addItem("5");
tmp_apres.setVisible(false);
tmp_avant.setVisible(false);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
MenuItem item0,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10;
Menu villes;
MenuBar mbar=new MenuBar();
setMenuBar(mbar);
Menu fichier=new Menu("Fichier");
mbar.add(fichier);
fichier.add(item1=new MenuItem("Nouveau trajet"));
fichier.add(item2=new MenuItem("Quitter"));
fichier.add(villes=new Menu("Changer de ville"));
villes.add(item9=new MenuItem("Madrid"));
villes.add(item10=new MenuItem("Barcelona"));
item1.addActionListener(command);
item2.addActionListener(command);
item9.addActionListener(command);
item10.addActionListener(command);
Menu reseau=new Menu("Reseau");
mbar.add(reseau);
reseau.add(item3=new MenuItem("Créer une nouvelle station"));
item3.addActionListener(command);
reseau.add(item4=new MenuItem("Ajouter une station sur une ligne"));
item4.addActionListener(command);
reseau.add(item5=new MenuItem("Supprimer une station sur une ligne"));
item5.addActionListener(command);
reseau.add(item8=new MenuItem("Afficher une ligne"));
item8.addActionListener(command);
Menu aide=new Menu("?");
mbar.add(aide);
aide.add(item6=new MenuItem("Aide"));
item6.addActionListener(command);
aide.add(item7=new MenuItem("A propos"));
item7.addActionListener(command);
add(bouton = new JButton("Valider")).setBounds(500,30,80,25);
bouton.addActionListener(command);
}
public void actualiser()
{
int nb_stat=res.nb_stat();
add(combo = new JComboBox()).setBounds(10,30 , 200,30);
for (int i=0;i<nb_stat;i++)
{combo.addItem(res.get_station(i));}
add(combo2 = new JComboBox()).setBounds(250,30,200,30);
for (int i=0;i<nb_stat;i++)
{combo2.addItem(res.get_station(i));}
int nb_ligne=res.nb_ligne();
add(combo3 = new JComboBox()).setBounds(200,30,200,30);
for (int i=0;i<nb_ligne;i++)
{combo3.addItem(res.get_ligne(i));}
combo3.setVisible(false);
}
public void initialiser()
{ combo.setVisible(true);
bouton.setVisible(true);
combo2.setVisible(true);
display.setVisible(false);
display2.setVisible(false);
bouton2.setVisible(true);
bouton3.setVisible(true);
lignes.setVisible(false);
bouton.setText("Valider");
combo3.setVisible(false);
tmp_apres.setVisible(false);
tmp_avant.setVisible(false);
txt.setVisible(false);
combo4.setVisible(false);
bouton3.setText("station d'arrivée");
}
private class InsertAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
String input = event.getActionCommand();
if (start) {
display.setText("");
start = false;
}
display.setText(display.getText() + input);
}
}
private class CommandAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
String action = event.getActionCommand();
if(action.equals("Valider"))
{if ((""+combo.getSelectedItem()).equals(""+combo2.getSelectedItem())==false)
{String dep =""+combo.getSelectedItem();
String ari =""+combo2.getSelectedItem();
combo.setVisible(false);
combo2.setVisible(false);
bouton.setVisible(false);
display.setVisible(true);display2.setVisible(true);
res.plus_cour_chemin(dep,ari);
display.setText("PREMIER CHEMIN: \n \n \t"+res.get_cheminplus_court());
display2.setText("DEUXIEME CHEMIN: \n \n \t"+res.get_cheminplus_court_2());}
else {combo.setVisible(false);
combo2.setVisible(false);
display.setVisible(true);
bouton.setVisible(false);
display.setText("VOUS ETES DEJA ARRIVE");}
}
if(action.equals("Nouveau trajet"))
{initialiser();
}
if(action.equals("Madrid")){
Metro.setVille("madrid.data");
actualiser();
initialiser();
}
if(action.equals("Barcelona")){
Metro.setVille("barcelona.data");
actualiser();
initialiser();
}
if(action.equals("Quitter"))
System.exit(0);
if(action.equals("Aide"))
Aide.Aide() ;
if(action.equals("A propos"))
Propos.Propos() ;
if(action.equals("Afficher une ligne"))
{
initialiser();
combo.setVisible(false);
combo2.setVisible(false);
bouton.setText("Afficher");
bouton2.setVisible(false);
bouton3.setText("ligne à afficher ");
combo3.setVisible(true);
}
if(action.equals("Afficher"))
{ bouton.setVisible(false);
combo3.setVisible(false);
bouton3.setVisible(false);
lignes.setVisible(true);
lignes.setText(res.afficher_une_ligne(""+combo3.getSelectedItem()));
}
if(action.equals("Créer une nouvelle station"))
{ initialiser();
combo.setVisible(false);
combo2.setVisible(false);
bouton.setText("Crée");
bouton2.setVisible(false);
bouton3.setText("nouvelle station?");
add(txt=new JTextField()).setBounds(200,30,200,30);
}
if(action.equals("Créée"))
{
res.ajouter_station(txt.getText());
txt.setText("");
actualiser();
initialiser();
}
if(action.equals("Ajouter une station sur une ligne"))
{initialiser();
combo.setVisible(false);
combo2.setVisible(false);
bouton.setText("ok");
bouton2.setVisible(false);
bouton3.setText("Quelle ligne voulez-vous modifier?");
combo3.setVisible(true);
}
if(action.equals("ok"))
{ bouton.setText("ajouter");
bouton2.setText("Entre quelle station et quelle station voulez-vous ajouter votre station");
bouton2.setVisible(true);
bouton3.setText("Quelle station voulez-vous ajouter?");
combo2.setVisible(true);
combo3.setVisible(false);
add(combo4 = new JComboBox()).setBounds(10,30,200,30);
String txt=res.getstat(""+combo3.getSelectedItem());
int m=0;int n=0;
while(txt.charAt(m)!='*')
{m=m+1;
}
String premier=txt.substring(n,m);
n=m+1;
m=m+1;
System.out.print(premier);
while (m<txt.length())
{if (txt.charAt(m)=='*')
{combo4.addItem(premier+">"+txt.substring(n,m));
premier=txt.substring(n,m);
n=m+1;}
m=m+1;
}
combo4.setVisible(true);
tmp_apres.setVisible(true);
tmp_avant.setVisible(true);
}
if(action.equals("Ajouter"))
{initialiser();
int tmp_av=Integer.parseInt(""+tmp_avant.getSelectedItem());
int tmp_ap=Integer.parseInt(""+tmp_apres.getSelectedItem());
String txt=""+combo4.getSelectedItem();
int i=0;
while (txt.charAt(i)!='>')
{i=i+1;}
res.ad_stat_sur_ligne(""+combo3.getSelectedItem(),txt.substring(0,i),txt.substring(i+1),""+combo2.getSelectedItem(),tmp_av,tmp_ap);
}
if(action.equals("Supprimer une station sur une ligne"))
{initialiser();
combo.setVisible(false);
combo2.setVisible(false);
bouton.setText("OK");
bouton2.setVisible(false);
bouton3.setText("Quelle ligne voulez-vous modifier?");
combo3.setVisible(true);
}
if(action.equals("OK"))
{ bouton.setText("Supprimer");
bouton2.setText("Quelle station voulez-vous suprimer?");
bouton2.setVisible(true);
combo3.setVisible(false);
bouton3.setVisible(false);
add(combo4 = new JComboBox()).setBounds(10,30,200,30);
String txt=res.getstat(""+combo3.getSelectedItem());
int m=0;int n=0;
while (m<txt.length())
{if (txt.charAt(m)=='*')
{combo4.addItem(txt.substring(n,m));
n=m+1;}
m=m+1;
}
combo4.setVisible(true);
}
if(action.equals("Supprimer"))
{initialiser();
int tmp_av=Integer.parseInt(""+tmp_avant.getSelectedItem());
int tmp_ap=Integer.parseInt(""+tmp_apres.getSelectedItem());
int i=0;
res.supres_station_sur_ligne(""+combo3.getSelectedItem(),""+combo4.getSelectedItem());
}
}
}
}