Bonjour,
j'ai une interface graphique qui possède une JList dans un Jscrollpane.
Cette JList à un defaultListModel.
A certains moments, j'update la liste des éléments.
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 private final Map<String, Integer> myMap; // TreeMap public void updateMyList() { myModelList.clear(); for (String str : myMap.keySet()) { myModelList.addElement( str); } this.validate(); //le this est un panel } .... init(){ ... myModelList= new DefaultListModel(); for (String str : myMap.keySet()) { myModelList.addElement(str); } myJList= new JList(myModelList); JScrollPane scrollPane = new JScrollPane(myJList); ... }
Mais depuis ce matin, j'ai des soucis d'affichage : des fois (2 fois sur 5) la liste apparait vide. J'ai bien vérifié que je passait toujours dans la fonction, que ma map n'étaient pas vide, que le model n'était pas vide après ajout etc.
En plus de ce problème, des fois (1 fois sur 3) une exception java apparait:
Je commence à caler pour résoudre ce problème.
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 Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2 at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(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 essayé en enlevant tout les this.validate, this.repaint etc.. mais rien n'y fait.
Ci quelqu'un peut m'aider à résoudre ça, je lui en serait reconnaissante.
Shaina
Partager