Borde con esquinas redondeadas y transparencia
Esta pregunta aborda el problema de crear un borde redondeado con transparencia, permitiendo que el componente subyacente se vea a través . La solución implica modificar la clase TextBubbleBorder para pintar el color de fondo del padre fuera de la región de recorte del borde.
Solución:
La modificación realizada a la clase TextBubbleBorder es como sigue:
// 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); }
Este código recupera el componente principal y su color de fondo. Luego crea un área que representa la región del borde y le resta las áreas de burbuja y puntero. Esto define la región fuera del borde.
Con la región de recorte configurada, el código rellena la región con el color de fondo del componente principal, haciendo que el borde sea transparente fuera de las esquinas redondeadas.
Consideraciones adicionales:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3