Maison  >  Article  >  Java  >  Comment obtenir des coins arrondis transparents dans TextBubbleBorder ?

Comment obtenir des coins arrondis transparents dans TextBubbleBorder ?

DDD
DDDoriginal
2024-11-06 13:59:03302parcourir

How to Achieve Transparent Rounded Corners in TextBubbleBorder?

Bordure avec coins arrondis et transparence

Question

Le composant TextBubbleBorder d'origine présentait des coins arrondis sans transparence, ce qui faisait que des parties du composant se trouvaient à l'extérieur le rectangle affichant la couleur du panneau par défaut. L'objectif est de rendre ces coins transparents, permettant ainsi aux couleurs des composants situés en dessous de transparaître.

Solution

Pour obtenir des coins arrondis transparents, un processus de découpage est utilisé. Voici comment cela fonctionne :

  1. Une zone est créée pour définir la forme du rectangle arrondi et le pointeur vocal (si présent).
  2. La méthode setClip est utilisée pour restreindre les opérations de dessin vers la zone spécifiée. Cela signifie que le dessin n'aura lieu que dans la forme définie de la bulle.
  3. La couleur d'arrière-plan du composant parent est peinte partout à l'extérieur du clip, couvrant tous les graphiques précédemment dessinés à l'extérieur de la bulle.
  4. Le clip est supprimée et la bordure de la bulle est dessinée sur l'arrière-plan rempli, ce qui donne des coins transparents.

En intégrant cette technique de découpage, le composant TextBubbleBorder peut désormais afficher des coins arrondis transparents, permettant aux couleurs des composants sous-jacents de restent visibles. Notez qu'un bug d'écrêtage dans le code d'origine doit être corrigé avant que cette solution puisse fonctionner correctement. Le code corrigé se trouve dans la réponse acceptée à la question "paintComponent() s'appuie sur d'autres composants."

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn