Tu as mal saisi les règles de l'EDT.
Les composants Swing doivent être créés et manipulés dans l'EDT, et non dans le doInBackround.
Or, c'est exactement ce que tu fais ton
Images images = new Images(nom,listeImages);
Dans ton cas d'utilisation, il serait préférable que ton doInBackground ne fasse que charger les images (sous forme d'ImageIcon ou de BufferedImage via ImageIO), puis que la liste d'images, et non un composant swing les utilisant, soit envoyée via le publish. Puis, dans le process, créer ton composant Image et l'ajouter à ta galerie.
De plus, le scale de ton image ne devrait pas être fait dans le constructeur de ta classe image.
En effet, c'est une opération lourde, et, de fait, elle bloque l'EDT.
Donc l'idée est de charger les images dans le doInBackround, de les redimensionner puis de les publier. Afin que l'opération du process soit la moins couteuse possible.
Partager