-
Sélectionner une image
Bonjour
je travaille sur une application java ds laquelle je dois afficher des photos et mettre en sorte que lorsque je clique sur une image , elle devient séléctionnée.
le problème est là. Je ne sais pas comment faire.
J'ai pensé à changer la couleur de la bordure.
mais au fait ca reste vague pour moi. je ne sais pas comment procèder.
Pouvez vous m'éclairer et me donner une piste, surtout que je devrais normalement si je sélectionne une image , les autres images doivent etre déselectionnées.
Merci
-
Je ne sais pas comment tu procèdes pour afficher des images mais imaginons que tu le fasses simplement avec une classe Image qui dérive de JLabel (en utilisant setIcon())
L'image est affichée et c'est tout.
Pour savoir si elle est sélectionnée, la classe image doit implémenter l'interface MouseListener et dans la méthode mouseClicked, tu bascules un booleen "select" et prévenir le conteneur parent qui connait alors le/les images sélectionnées et désélectionnes les autres images. Tu peux aussi modifier l'image comme tu veux pour montrer qu'elle est sélectionnée (en ajoutant une bordure par exemple)
Mais peut être qu'il existe des bibliothèques qui te macheraient le travail ?
-
En fait j'affiche les images dans des canvas.
J'ai essayé de voir s'il y a une fonction qui permet de changer la bordure , mais en vain.
-
En fait je n'ai rien trouvé. :(
J'ai l'impression que le problème réside dans le fait que j'affiche l'image dans un canvas.
Est-il possible de mettre des bordures aux canvas? Eb tout cas j'ai bien cherché, j'ai pas trouvé!!!!:?
aidez moi svp!!!
-
Je pense que l'affichage dans un Canvas peut se justifier. En passant par un Canvas, tu dessines et tu peux alors créer de nouveaux composants (http://www.developpez.org/club/bkost...d-carres.html).
Mais il faut alors tout gérer à la main. Ainsi, si tu veux faire une bordure, il faut que tu l'as dessine dans la méthode paint().
En utilisant un JLabel (On peut mettre une image devant le texte mais si tu n'as pas de texte, seul l'image sera affichée) Là, tu as à faire à un composant donc pour dessiner une bordure (setBorder()).
Créer un nouveau composant est probablement plus performant mais il faut tout se taper à la main (à moins de trouver une bibliothèque existante)
Créer une image à partir d'un JLabel est la solution la plus rapide que j'ai trouvé.