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 :
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 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 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
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 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.
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()); }
Y'a t'il un moyen pour contourner le problème ?
Merci d'avance de votre aide
Partager