"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo crear un borde redondeado con transparencia en Java?

¿Cómo crear un borde redondeado con transparencia en Java?

Publicado el 2024-11-25
Navegar:211

How to Create a Rounded Border with Transparency in Java?

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:

  • Existe un error en el código original que provoca un problema de recorte. Este error se solucionó en la "corrección de errores de recorte" para el método paintComponent().
  • Al establecer el tamaño del puntero en 0, el borde se transforma en un rectángulo redondeado estándar.
  • Un parámetro left se introduce en el constructor TextBubbleBorder para crear burbujas alineadas a la derecha si se establece en false.
Último tutorial Más>

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