Bonjour,

J'ai fait une appli qui fait un peu exploreur avec des options.
Mon problème est que lorsque j'ai des dossiers contenant beaucoup de fichier cela bloque mon appli.
Je ne sais pas trop comment faire.
J'ai redefinit la méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public Component getTreeCellRendererComponent(JTree tree,Object value
			,boolean selected,boolean expanded
			,boolean leaf,int row,boolean hasFocus)
dans une class qui extends DefaultTreeCellRenderer.
Cette méthode est appelée le nombre de fois qu'il y a de sous-dossier ou sous-fichier dans un dossier et dois sûrement s'executer dans l'EDT. Ce qui expliquerait mon problème. Mais je ne sais pas comment la faire executer dans un autre thread pour arrêter de bloquer l'EDT.

Voici la méthode en question :
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
public Component getTreeCellRendererComponent(JTree tree,Object value
			,boolean selected,boolean expanded
			,boolean leaf,int row,boolean hasFocus){
 
                JLabel label = (JLabel)super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
		File fichier = (File)value;
		FileSystemView sys = FileSystemView.getFileSystemView();
                String s = sys.getSystemDisplayName(fichier);
 
                if(s.length()>3 && s.substring(s.length()-3,s.length()).equals("jpg"))
                {
                    label.setText(s.substring(0,s.length()-4)+"  "+dateFormat.format(new Date(fichier.lastModified())));
                    label.setIcon(sys.getSystemIcon(fichier));
                }
                else{
                    label.setText(sys.getSystemDisplayName(fichier));
                    label.setIcon(sys.getSystemIcon(fichier));
                }
		return label;				
	}
Merci d'avance