Bonjour à tous,

je travaille en ce moment sur un projet en java en théroie des graphes (le métro). J'ai fait une interface grapghique pour pouvoir afficher mon graphe. Le soucis c'est que lorsque je veux recharger ma page, en remettant les stations à leur état initial, j'obtient cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at metro.Graphe.resetStation(Graphe.java:446)
	at metro.Menu$2.actionPerformed(Menu.java:86)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.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.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(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)
Voici la classe de mon interface
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
 
public class Menu extends JPanel{
 
	private final Graphe graphe;
	JComboBox cItiOri;
	JComboBox cItiDest;
 
	public Menu(final Fenetre fen, Graphe g)
	{
		graphe=g;
		this.setBackground(Color.lightGray);
		setSize(200, 600);
		setLayout(new FlowLayout(FlowLayout.CENTER));
		Box vBox = Box.createVerticalBox();
		Box hBox = Box.createHorizontalBox();
		Box hBox1 = Box.createHorizontalBox();
		Box hBox2 = Box.createHorizontalBox();
		Box hBox3 = Box.createHorizontalBox();
 
		JLabel ligne = new JLabel("Situer une ligne");
		hBox.add(ligne);
		hBox.add(Box.createHorizontalGlue());
 
		Vector listeLigne = getListLigne();
		JComboBox cLigne = new JComboBox(listeLigne);
		cLigne.addActionListener(new selectLigne());
 
		hBox.add(cLigne);
 
		vBox.add(hBox);
		vBox.add(Box.createVerticalStrut(30));
 
		JLabel station = new JLabel("Situer une station");
		hBox1.add(station);
		hBox1.add(Box.createHorizontalGlue());
 
		Vector listeStation = getListStation();
		JComboBox cStation = new JComboBox(listeStation);
		cStation.addActionListener(new selectStation());
		hBox1.add(cStation);
 
		vBox.add(hBox1);
		vBox.add(Box.createVerticalStrut(30));
 
		JLabel itineraire = new JLabel("Itinéraire : ");
		vBox.add(itineraire);
 
		cItiOri = new JComboBox(listeStation);
		hBox2.add(cItiOri);
		hBox2.add(Box.createHorizontalStrut(5));
 
		cItiDest = new JComboBox(listeStation);
		hBox2.add(cItiDest);
 
		vBox.add(hBox2);
		vBox.add(Box.createVerticalStrut(30));
 
		JButton bOk = new JButton("Validez");
		bOk.addActionListener(new ActionListener()
		{
			public void actionPerformed (ActionEvent evenement)
			{
				String ori = cItiOri.getSelectedItem().toString();
				String dest = cItiDest.getSelectedItem().toString();
				Graphe.chemin(graphe, Graphe.getStation(ori).get_num(), Graphe.getStation(dest).get_num());
			}
		});
		vBox.add(bOk);
		vBox.add(Box.createVerticalStrut(60));
 
		JButton bReset = new JButton("Recharger");
		bReset.addActionListener(
				new ActionListener()
				{
					public void actionPerformed (ActionEvent evenement)
					{
					Graphe.resetStation();
 
 
					}
				}
			);
		hBox3.add(bReset);
		hBox3.add(Box.createHorizontalStrut(5));
 
 
		JButton bLignes = new JButton("changer de fichier");
		bLignes.addActionListener(
				new ActionListener()
				{
					public void actionPerformed (ActionEvent evenement)
					{
						String[] fichier = {"lignes.data", "lignes2.data", "lignes3.data", "lignes4.data",
						"lignes5.data", "lignes6.data"};
						String fic = (String)JOptionPane.showInputDialog (fen, "Choisissez votre fichier d'entrée",
						"Choix du fichier en entrée", //titre de la boîte
						JOptionPane.QUESTION_MESSAGE, null, fichier,fichier[0]);
 
						graphe.changementFichier(fic);
 
					}
				}
			);
		hBox3.add(bLignes);
		vBox.add(hBox3);
 
		this.add(vBox);
 
	}