PHP 편집기 Xinyi는 오늘 흥미로운 JAVA 프로그래밍 기술을 소개합니다. 즉, 버튼을 누를 때 테두리 창에서 개체를 이동하는 것입니다. 이 기술을 사용하면 사용자 인터페이스에 상호 작용 기능을 추가할 수 있어 사용자가 버튼을 클릭하여 개체를 이동할 수 있습니다. 이 함수의 구현 방법은 비교적 간단합니다. 버튼의 클릭 이벤트를 수신하고 이벤트 처리 방법에서 객체의 위치를 업데이트하기만 하면 됩니다. 이러한 방식으로 우리는 사용자에게 더욱 생생하고 흥미로운 인터페이스 경험을 제공할 수 있습니다. 아래에서는 이 기술의 구현 과정을 자세히 소개하겠습니다.
창에 원을 만들고 화면 하단의 버튼을 사용하여 이동해야 하는 숙제를 하고 있어요. 창에 원과 버튼을 표시할 수 있지만 버튼을 눌러도 원이 움직이지 않습니다.
나의 주요 방법은 다음과 같습니다:
으아악원을 이동하는 실제 방법은 다음과 같습니다.
으아악ballcontrol 방법의 목적은 원을 움직이면 원이 창 경계를 넘어 확장되는지 확인하고 그렇지 않으면 이동하는 것입니다. 하지만 버튼을 눌러도 원은 움직이지 않습니다.
borderpane
是一种“布局窗格”,这意味着它将根据自己的算法布局其子节点。特别是,如果该节点可调整大小,并且在其最小、最大和首选大小指定的约束范围内,则 borderpane
将扩展 center
区域中的节点以填充整个区域,然后将其在该区域内居中。 circle
크기 조정이 불가능하므로 해당 영역의 중심에만 배치됩니다.
원의 centerx
和 centery
좌표를 수정하는 것은 여기서 도움이 되지 않습니다. 원의 레이아웃 경계는 약 20x20픽셀의 직사각형이 됩니다(반경이 10이므로 이는 원을 포함하는 가장 작은 직사각형입니다. 여기서 "대략"은 획이 약간의 추가 공간이 필요합니다.) 직사각형은 중심 반경에서 시작하여 중심+반경까지 확장되는 좌표계를 가지지만 테두리 창의 레이아웃 정책에 따라 중심 영역에 중심이 지정됩니다. 실제로 원 중심의 좌표는 변경되지만 이러한 좌표는 원 자체의 좌표계 내에 있을 뿐 테두리 창의 좌표계에는 없습니다.
한 가지 해결책은 레이아웃을 수행하지 않는 일반 창
에 원을 래핑하고 경계창
중앙에 창
을 배치하는 것입니다. 창
은 크기 조정이 가능하므로 경계창
은 중앙 영역의 전체 크기로 크기를 조정합니다. 창
은 원의 레이아웃을 지정하지 않으므로 추가 레이아웃 없이 pane
中,并将 pane
放置在 borderpane
的中心。 pane
的大小是可调整的,因此 borderpane
会将其大小调整为中心区域的完整大小。 pane
不会对圆进行布局,因此它保留在 centerx
和 centery
에서 정의한 좌표에 유지됩니다. (실제로 원의 좌표계를 창의 좌표계와 동일하게 만듭니다.) 이것이 아래 코드에서 사용하는 솔루션입니다.
또 다른 해결책은 원의 translatex
和 translatey
속성을 조작하는 것입니다. 이러한 변환은 레이아웃 후에 적용됩니다. 그러나 이 솔루션을 사용하면 원이 컨테이너 경계를 벗어나는 것을 방지하는 것이 더욱 복잡해집니다. (아래 코드에서는 이 솔루션을 표시하지 않습니다.)
자세한 내용은 레이아웃 문서를 참조하세요.
이 작업을 수행하기 위한 수정 사항은 다음과 같습니다. 창 크기가 조정되더라도 여전히 작동하도록 경계 계산 방법도 수정했습니다.
으아악위 내용은 JAVA:버튼을 누르면 테두리 창에서 개체 이동의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!