둥근 모서리가 있는 테두리의 투명한 모서리
주어진 코드에서 TextBubbleBorder 클래스는 아래쪽에 삼각형 포인터가 있는 둥근 사각형을 그립니다. . 그러나 직사각형 외부 모서리가 약간 확장되어 상위 패널의 배경색이 표시됩니다. 투명한 모서리를 얻기 위해 추가 단계를 포함하도록 PaintBorder 메서드를 수정합니다.
// 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); }
이 코드는 구성 요소에 상위 구성 요소가 있는지 확인하고 배경색을 검색한 다음 전체 테두리 영역을 나타내는 직사각형을 만듭니다. 그런 다음 이 직사각형을 나타내는 Area 객체 borderRegion을 만듭니다. 다음으로, borderRegion에서 텍스트 버블을 나타내는 영역을 빼서 텍스트 버블 외부 영역을 나타내는 클립이라는 영역을 만듭니다.
클립을 사용하면 코드가 Graphics2D 객체에 대한 클리핑 영역을 설정하고 채웁니다. 부모의 배경색으로 지정한 다음 클리핑 영역을 재설정하여 테두리 자체를 그립니다. 이렇게 하면 둥근 사각형 외부 모서리가 투명해지며 부모의 배경색이 표시됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3