>Java >java지도 시간 >Java에서 투명성을 갖춘 둥근 테두리를 만드는 방법은 무엇입니까?

Java에서 투명성을 갖춘 둥근 테두리를 만드는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-17 16:23:02220검색

How to Create a Rounded Border with Transparency in Java?

둥근 모서리와 투명도가 있는 테두리

이 질문은 투명도가 있는 둥근 테두리를 만들어 기본 구성요소가 투명하게 보이도록 하는 문제를 다룹니다. . 해결 방법에는 TextBubbleBorder 클래스를 수정하여 테두리 클립 영역 외부에 있는 부모의 배경색을 그리는 작업이 포함됩니다.

해결 방법:

TextBubbleBorder 클래스에 대한 수정 사항은 다음과 같습니다. 다음은 다음과 같습니다.

// 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);
}

이 코드는 상위 구성 요소와 배경색을 검색합니다. 그런 다음 테두리 영역을 나타내는 영역을 만들고 여기에서 거품과 포인터 영역을 뺍니다. 이는 테두리 외부 영역을 정의합니다.

클립 영역이 설정된 경우 코드는 해당 영역을 상위 구성 요소의 배경색으로 채워 둥근 모서리 외부의 테두리를 투명하게 만듭니다.

추가 고려 사항:

  • 원본 코드에 버그가 있어 클리핑 문제가 발생합니다. 이 버그는 PaintComponent() 메서드의 "클리핑 버그 수정"에서 수정되었습니다.
  • 포인터 크기를 0으로 설정하면 테두리가 표준 둥근 사각형으로 변환됩니다.
  • 매개변수 false로 설정된 경우 오른쪽 정렬 거품을 생성하기 위해 TextBubbleBorder 생성자에 left가 도입되었습니다.

위 내용은 Java에서 투명성을 갖춘 둥근 테두리를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.