Borda com cantos arredondados e transparência
Esta questão aborda a questão da criação de uma borda arredondada com transparência, permitindo que o componente subjacente seja exibido . A solução envolve a modificação da classe TextBubbleBorder para pintar a cor de fundo do pai fora da região do clipe da borda.
Solução:
A modificação feita na classe TextBubbleBorder é como segue:
// 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 o componente pai e sua cor de fundo. Em seguida, ele cria uma área que representa a região da borda e subtrai dela as áreas da bolha e do ponteiro. Isso define a região fora da borda.
Com a região do clipe definida, o código preenche a região com a cor de fundo do componente pai, tornando a borda transparente fora dos cantos arredondados.
Considerações adicionais:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3