Bonjour,
je souhaite avoir à la place du type Icon: une Shape. Avez vous une idée comment les convertir ?
merci
Bonjour,
je souhaite avoir à la place du type Icon: une Shape. Avez vous une idée comment les convertir ?
merci
Tu réalises sans doute :
- qu'une Icon est un bitmap, un ensemble de pixels qui ont chacun une couleur parmis 24 millions et sont plus ou moins opaques.
- qu'une Shape est un chemin vectoriel, décrivant par où passe le chemin avec des fonctions mathématique, mais sans indiquer la couleur du chemin, et sans parler de pixel.
Ce sont donc deux choses qui n'ont pas de rapport entre elles, à part à la rigueur le fait qu'elles sont en deux dimensions.
Je suppose qu'il doit doit être possible de calculer le contour opaque d'une Icon, et de l'exprimer en fonction d'une Shape approchée.
Mais je ne connais pas de bibliothèque qui fasse ça.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Non, une Icon n'est pas forcément un image, une icone peut très bien être un ensemble d'instructions Java2D, donc du vectoriel si l'on veux...
En effet
Exemple d'Icon vectorielle:
Sachant que l'on pourrait très bien modifier la Shape au moment du paintIcon en fonction de la taille du composant.
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 public class ShapeIcon implements Icon{ private Shape shape = new Rectangle2D.Float(0,0,20,20); public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2d = (Graphics2D) g.create(); g2d.setColor(Color.BLUE); g2d.draw(shape); g2d.dispose(); } public int getIconWidth() { return shape.getBounds2D().getWidth(); } public int getIconHeight() { return shape.getBounds2D().getHeight(); } }
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
Oui, bon, on peut implémenter une Icon à base de vectoriel et de couleurs.
En attendant, une Shape, ça fait du getPathIterator(), du contains(), et du intersects().
Une Icon, ça fait du paintIcon(), et on sait très bien d'où on les chope en général .
L'idée de convertir une Icon générale vers Shape n'est pas précisément définie, d'une part, et c'est du calcul de chemin pas forcément trivial, d'autre part.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
En fait tu as pris la question à l'envers, il veut remplacer une icone par une shape dans un composant.
De fait il n'a qu'à embedder sa Shape dans une Icone, ou dessiner la chape dans une image qu'il balance dans une IconImage et le tour est joué...
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager