Bonjour,
J'ai développé une application qui doit charger à partir d'une base de données une liste de près de 4000 entrées.
Sous Windows cela marche très bien et ne prend à peine que 2 secondes. Sous MAC il faut énormément de temps et même au bout d'une heure ce n'est pas terminé.
Je subodore un problème d'allocation dynamique différent sous OS/X et du Garbage Collector, mais je n'en suis pas sûr. Ou peut-être un problème de scrolling (je pencherais pour cela).
Ce que je veut faire :
Avoir une la liste avec les noms des items précédé par une case à cocher. En résumé, voici ce que je fais :
- Allocation d'un JScroll
- Ajout d'un JPanel dans le JScroll
- Ajouts de mes lignes dans le JPanel.
Au début j'avais essayé avec une JList mais sans succès.
Voici une partie du code.
Merci pour vos conseils, ou même une autre façon de programmer.
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 private void loadTitres() { try { java.sql.ResultSet rs =FilmTable.listerTitres("Titre_Francais"); if (rs== null) return; while (true) { String titre = rs.getString("Titre"); if (isEmpty(titre)) continue ; // ignore JCheckBox cb = new JCheckBox(titre); cb.setForeground(Color.WHITE); cb.setBackground(Color.BLACK); monPanneau.add(cb); } rs.close(); monPanneau.revalidate(); monPanneau.repaint(); } catch (Exception ex) { Common.afficherErreur(ex,"MaClasse","loadTitres");} }
Partager