"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment créer une bordure arrondie avec transparence en Java ?

Comment créer une bordure arrondie avec transparence en Java ?

Publié le 2024-11-25
Parcourir:350

How to Create a Rounded Border with Transparency in Java?

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 :

  • Un bug existe dans le code d'origine, provoquant un problème d'écrêtage. Ce bug a été corrigé dans le "clipping bug fix" pour la méthode paintComponent().
  • En définissant la taille du pointeur sur 0, la bordure se transforme en un rectangle arrondi standard.
  • Un paramètre left est introduit dans le constructeur TextBubbleBorder pour créer des bulles alignées à droite si défini sur false.
Dernier tutoriel Plus>

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