Bonjour,

Je deviens un habitué ces temps ci du forum swing A croire que cela faisait une décénie que je n'ai pas touché à cette techno

Voila mon nouveau problème :

j'ai un JTabbedPane dans mon application avec plusieurs onglets, une combobox ou il y'a des éléments. Je veux gérer le changement d'onglets par l'utilisateur pour effectuer des traitements : pour cela, il me faut connaitre la valeur qui est sélectionner dans mon combobox. J'ai écrit la fonction stateChanged de JtabbedPane comme suit :
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
public void stateChanged(ChangeEvent arg0) {
		// TODO Auto-generated method stub

		String productName=PrincipleWindow.products_comboBox.getSelectedItem().toString();
		System.out.println(PrincipleWindow.tabbedPane.getSelectedComponent().getName());
		Properties prop4 = new Properties();
		try {
			prop4.load(new FileInputStream("config/products.properties"));
		} catch (Exception e1) {
			e1.printStackTrace();
		}
	  
		try {
		DBUtils.PopulateJComboFromDB(PrincipleWindow.column1, prop4.getProperty(productName),PrincipleWindow.tabbedPane.getSelectedComponent().getName(), "", env);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
J'ai cette erreur quand je lance mon programme :
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
 
java.lang.NullPointerException
	at com.treso.ca.view.Listener.stateChanged(Listener.java:370)
	at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
	at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
	at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
	at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
	at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
	at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
	at javax.swing.JTabbedPane.insertTab(Unknown Source)
	at javax.swing.JTabbedPane.addTab(Unknown Source)
	at com.treso.ca.view.PrincipleWindow.initialize(PrincipleWindow.java:233)
	at com.treso.ca.view.PrincipleWindow.<init>(PrincipleWindow.java:103)
	at com.treso.ca.view.PrincipleWindow$1.run(PrincipleWindow.java:89)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(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)
J'ai remarquer aussi que si je modifie ma fonction comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public void stateChanged(ChangeEvent arg0) {
		// TODO Auto-generated method stub
 
		System.out.println(PrincipleWindow.tabbedPane.getSelectedComponent().getName());
 
	}
J'ai le nom de mon onglet qui s'affiche dès que je run mon application : or que logiquement il n'y a pas eu de statechange ! la méthode est directement déclancher quand je run mon appli ( ce qui est trop déranant) : car si je met du code la dedans, vu que tout les variables ne sont pas encore setter, ça va forcément cracher.

Y'a t'il un moyen pour contourner le problème ?

Merci d'avance de votre aide