Bonjour à tous,
Existe-t-il une classe qui permet de choisir des motifs de remplissage, du même style que le JColorChooser ?
Sinon comment remplir des formes (cercle, polygone...) avec un quadrillage, des lignes diagonales...
Merci
Bonjour à tous,
Existe-t-il une classe qui permet de choisir des motifs de remplissage, du même style que le JColorChooser ?
Sinon comment remplir des formes (cercle, polygone...) avec un quadrillage, des lignes diagonales...
Merci
Passes par un TexturePaint pour faire un fill sur de formes (Classes héritant de l'interface shape comme Rectangle2D ou Ellipse2D ou encore GeneralPath).
Ceci ne fonctionnera par contre qu'avec des Graphics2D.
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void paintComponent (Graphics g){ Graphics2D g2d = (Graphics2D) g; g2d.setPaint(myTexturePaint); g2d.fill(monRectangle2d); }
Merci pour ton aide. Je vais modifier essayer ta solution.
A+
Attention TexturePaint peut eventuellement etre une source de ralentissement ou de problemes de performances. Suivant ce que tu veux faire, il y a d'autres solutions plus ou moins performantes :
- l'utilisation d'une forme en tant que zone de clip. Attention cette forme ne peut pas etre antialiasee.
- l'utilisation d'une AlphaComposite.SRC_IN. Cette methode semble etre celle a privilegier (EDIT - pour un rendu offscreen dans une image intermediaire, pas pour un rendu direct a l'ecran).
Combiner ces methodes avec un rendu manuel des motifs tandis que TexturePaint lui te demandera une image. Il est aussi possible d'utiliser la methode copyArea() de la classe Graphics pour accelerer le tout.
Bref, a toi de voir lequel te convient le mieux, nottament suivant les formats de sortie de ton rendu (ex : export vers un format d'image vectoriel, SVG, ...).
Non, de base il n'existe pas de classe permettant de selectionner ce genre de motifs, tu devras en trouver une ou la coder toi-meme.
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