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 de fond. 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 :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!