>Java >java지도 시간 >크기 조정이 불가능한 Java 프레임 내에서 사각형을 중앙에 올바르게 배치하는 방법은 무엇입니까?

크기 조정이 불가능한 Java 프레임 내에서 사각형을 중앙에 올바르게 배치하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 04:51:14893검색

How to Properly Center a Rectangle within a Non-resizable Java Frame?

Java 프레임에서 직사각형을 가운데에 맞추는 방법

문제:

Java에서는 고정 크기 (800, 400)의 직사각형 프레임을 만들고 다음과 같이 설정했습니다. 크기 조정이 불가능합니다. 좌표(50, 50, 700, 300)로 그린 직사각형은 프레임 위쪽으로 갈수록 중심에서 약간 벗어난 것처럼 보입니다.

답변:

문제 프레임에는 프레임 영역 내의 공간을 차지하는 고유한 장식(테두리 및 제목 표시줄)이 있다는 사실에 있습니다. 이 경우에 가정된 것처럼 프레임 표면에 직접 페인팅할 때 이러한 장식은 인식된 프레임 중심을 이동할 수 있습니다.

프레임의 실제 중앙에 직사각형을 그리려면 프레임 표면에 직사각형을 렌더링해야 합니다. 콘텐츠 영역. 이 영역은 장식을 제외하고 그림에 사용할 수 있는 표면을 나타냅니다.

데모:

제공된 Java 코드 예에서:

  • BadFrame: 이 프레임은 Paint() 메서드를 재정의하고 프레임 자체에 직접 직사각형을 그립니다. 중심에서 벗어난 문제가 나타납니다.
  • PaintablePane: goodFrame의 콘텐츠 영역 역할을 하는 하위 컨테이너입니다. getPreferredSize() 및 PaintComponent() 메서드를 재정의하여 콘텐츠 영역의 크기를 설정하고 직사각형을 올바르게 그립니다.

goodFrame은 그런 다음 PaintablePane을 사용합니다. 모든 페인팅이 지정된 영역 내에서 발생하도록 보장합니다. 프레임의 장식은 이제 페인팅 영역 외부로 간주되며 직사각형은 의도한 대로 중앙에 배치됩니다.

위 내용은 크기 조정이 불가능한 Java 프레임 내에서 사각형을 중앙에 올바르게 배치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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