Bordure avec coins arrondis et transparence
Cette question aborde le problème de la création d'une bordure arrondie avec transparence, permettant au composant sous-jacent de transparaître . La solution consiste à modifier la classe TextBubbleBorder pour peindre la couleur d'arrière-plan du parent en dehors de la région de découpage de la bordure.
Solution :
La modification apportée à la classe TextBubbleBorder est la suivante suit :
// Paint the BG color of the parent, everywhere outside the clip // of the text bubble. Component parent = c.getParent(); if (parent!=null) { Color bg = parent.getBackground(); Rectangle rect = new Rectangle(0,0,width, height); Area borderRegion = new Area(rect); borderRegion.subtract(area); g2.setClip(borderRegion); g2.setColor(bg); g2.fillRect(0, 0, width, height); g2.setClip(null); }
Ce code récupère le composant parent et sa couleur d'arrière-plan. Il crée ensuite une zone représentant la région frontalière et en soustrait les zones de bulles et de pointeurs. Ceci définit la région à l'extérieur de la bordure.
Une fois la région de découpage définie, le code remplit la région avec la couleur d'arrière-plan du composant parent, rendant la bordure transparente en dehors des coins arrondis.
Considérations supplémentaires :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3