[JAVA] - Changement d'image
Résolu/Fermé
A voir également:
- Java change image
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Change dns - Guide
- Java apk - Télécharger - Langages
- Image iso - Guide
4 réponses
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
30 déc. 2007 à 01:09
30 déc. 2007 à 01:09
Hello Kronos85,
Petites suggestions :
- Avant d'ajouter "image" à "pane", essaie de faire un pane.remove(image); Evidemment il faudra un peu modifier ton code pour garder la référence du dernier objet "AffichageImage" ajouté à "pane". Sinon en fait tu ne vas pas remplacer la première image par l'autre mais juste les superposer (et encore, j'utilise rarement les layout null).
- Après avoir cliqué sur le deuxième (enfin l'autre) bouton, essaie de redimensionner la fenêtre manuellement... pourquoi parce que ça va forcer la fenêtre à mettre à jour l'affichage de ses composants. Si ton autre image apparaît c'était juste un soucis de rafraîchissement des composants et il doit y avoir une méthode dans le panel pour rafraîchir ses composants (je ne sais pas si le fait de faire un setContentPane y substitue vraiment), sinon ben... j'en sais rien en général pour afficher des images je me contente des JLabel, c'est moins casse-tête ^^
Petites suggestions :
- Avant d'ajouter "image" à "pane", essaie de faire un pane.remove(image); Evidemment il faudra un peu modifier ton code pour garder la référence du dernier objet "AffichageImage" ajouté à "pane". Sinon en fait tu ne vas pas remplacer la première image par l'autre mais juste les superposer (et encore, j'utilise rarement les layout null).
- Après avoir cliqué sur le deuxième (enfin l'autre) bouton, essaie de redimensionner la fenêtre manuellement... pourquoi parce que ça va forcer la fenêtre à mettre à jour l'affichage de ses composants. Si ton autre image apparaît c'était juste un soucis de rafraîchissement des composants et il doit y avoir une méthode dans le panel pour rafraîchir ses composants (je ne sais pas si le fait de faire un setContentPane y substitue vraiment), sinon ben... j'en sais rien en général pour afficher des images je me contente des JLabel, c'est moins casse-tête ^^
Cool ^^ tes remarques m'ont donné des idées :D
J'ai placé les chargements d'image dans le constructeur (de façon à avoir mes images référencées en global)
J'ai rajouté un pane.remove(image2); avant le pane.add(image1); et vice-versa.
Et ça marche parfaitement !!!
Comme tu l'as remarqué également, le setContentPane ne sert pas à rafraichir la fenêtre (apparament) car je les ai supprimé (à part le tout premier évidement ^^ ) et les images se mettent bien à jour toutes seules :)
Dernier point... tu affiches des images dans des JLabel ? je serais intéressé de savoire comment :) (je débute en JAVA et je n'ai que des bases de BASIC et de C ^^ )
En tout cas merci pour cette réponse rapide c'est sympa !
J'ai placé les chargements d'image dans le constructeur (de façon à avoir mes images référencées en global)
J'ai rajouté un pane.remove(image2); avant le pane.add(image1); et vice-versa.
Et ça marche parfaitement !!!
Comme tu l'as remarqué également, le setContentPane ne sert pas à rafraichir la fenêtre (apparament) car je les ai supprimé (à part le tout premier évidement ^^ ) et les images se mettent bien à jour toutes seules :)
Dernier point... tu affiches des images dans des JLabel ? je serais intéressé de savoire comment :) (je débute en JAVA et je n'ai que des bases de BASIC et de C ^^ )
En tout cas merci pour cette réponse rapide c'est sympa !
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
30 déc. 2007 à 16:48
30 déc. 2007 à 16:48
Bonjour,
Au plaisir.
Oui j'utilise la propriété "icon" des JLabel pour afficher mes images. Un simple appel à la méthode "setIcon", je ne mets pas de texte et voilà :-) Ca simplifie grandement et je n'ai pas besoin d'utiliser un Canvas pour repeindre l'image. En plus on a l'avantage de pouvoir conserver le fait d'ajouter du texte pour une légende par exemple, on sait définir la position du texte par rapport à l'icone,... bref ce n'est peut-être pas la méthode appropriée mais sincèrement je m'en fous :D (cela dit si un spécialiste des images dans Java veut tenter de me faire changer d'avis je reste ouvert).
Au plaisir.
Oui j'utilise la propriété "icon" des JLabel pour afficher mes images. Un simple appel à la méthode "setIcon", je ne mets pas de texte et voilà :-) Ca simplifie grandement et je n'ai pas besoin d'utiliser un Canvas pour repeindre l'image. En plus on a l'avantage de pouvoir conserver le fait d'ajouter du texte pour une légende par exemple, on sait définir la position du texte par rapport à l'icone,... bref ce n'est peut-être pas la méthode appropriée mais sincèrement je m'en fous :D (cela dit si un spécialiste des images dans Java veut tenter de me faire changer d'avis je reste ouvert).