Ik heb een JList die zich absoluut niet aan de regels houdt. Hij is erg recalcitrant
Ik heb een custom list model die ik extend van DefaultListModel
nix mis mee zo te zien...doet het prima.
Dit list model wordt gevuld vanuit een runnable:
Doet ie ook prima, bij het debuggen staan er ook netjes items in de JList.
Met het maken van mijn JList specificeer ik netjes het model en renderer (innerclass renderer)
Soms laat hij de correcte data zien, en soms niet. Ik heb wel het idee dat hij iets doet, aangezien er een scrollbalk bij komt te staan.
Het maakt ook niet uit als ik geen renderer toeken. Hij zal dan de classe naam + geheugen adres moeten laten zien van de lijst, maar dat vertikt hij ook.
Anyone?
Ik heb een custom list model die ik extend van DefaultListModel
Java:
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
| public class EntityListModel extends DefaultListModel implements IPropertyChangeSupport { private PropertyChangeSupport pcs; private boolean isLoaded = false; public EntityDTO entity; public EntityListModel(String name) { pcs = new PropertyChangeSupport(this,name); } public void setSelectedEntity(EntityDTO selectedDataModel) { EntityDTO oldValue = entity; entity = selectedDataModel; pcs.firePropertyChange(PropertyChangeSupport.EVENT_ACTIVATE, oldValue, entity); } public void addElement(Object obj) { super.addElement(obj); pcs.firePropertyChange(PropertyChangeSupport.EVENT_ADD,null,obj); } public boolean removeElement(Object obj) { boolean result = super.removeElement(obj); pcs.firePropertyChange(PropertyChangeSupport.EVENT_REMOVE,null,obj); return result; } public void addPropertyChangeListener(PropertyChangeListener pcl, String property) { pcs.addPropertyChangeListener(pcl,property); } public void removePropertyChangeListener(PropertyChangeListener pcl, String property) { pcs.removePropertyChangeListener(pcl,property); } public void removePropertyChangeListener(String property) { pcs.removePropertyChangeListener(property); } public boolean isLoaded() { return isLoaded; } public void setLoaded(boolean isLoaded) { this.isLoaded = isLoaded; pcs.firePropertyChange("loaded", false, true); } } |
nix mis mee zo te zien...doet het prima.
Dit list model wordt gevuld vanuit een runnable:
Java:
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
| class FillExperimentListWorker implements Runnable { EntityListModel list; public FillExperimentListWorker(EntityListModel list) { this.list = list; } public void run() { try { ExperimentManagementDelegate management = new ExperimentManagementDelegate(); for (Iterator i = management.getEntityList().iterator(); i.hasNext();) { ExperimentDTO experimentDTO = (ExperimentDTO) i.next(); list.addElement(experimentDTO); } } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } list.setLoaded(true); } } |
Doet ie ook prima, bij het debuggen staan er ook netjes items in de JList.
Met het maken van mijn JList specificeer ik netjes het model en renderer (innerclass renderer)
Java:
1
2
| list.setModel(entityListModel); list.setCellRenderer(new Renderer()); |
Soms laat hij de correcte data zien, en soms niet. Ik heb wel het idee dat hij iets doet, aangezien er een scrollbalk bij komt te staan.
Het maakt ook niet uit als ik geen renderer toeken. Hij zal dan de classe naam + geheugen adres moeten laten zien van de lijst, maar dat vertikt hij ook.
Anyone?