저는 Swing과 AWT의 초보자입니다. Netbeans를 사용하여 GUI를 작성하려고합니다. 내 GUI에는 JFrame에서 JPanels로 생각하고있는 세 가지 영역이 필요합니다. 마우스 입력을 수신하고 Java2D 셰이프를 그릴 "그리기"패널이 필요합니다. 그리기 패널이 왼쪽 상단에 고정됩니다. 다른 두 영역은 "속성"스크롤 창과 "컨트롤러"스크롤 창입니다. 컨트롤러 팬은 단추를 통해 표시 할 그리기 요소를 결정하고 속성 스크롤 창에는 드로잉 창에서 클릭 한 모든 모양 개체 (끝점, 색 등)에 대한 세부 정보가 표시됩니다.이 디자인의 최상위 컨테이너 인 JFrame이있는 JFrame 또는 JInternalFrames가있는 JDesktop
드로잉 영역의 일반적인 사용 예는 드로잉 영역의 첫 번째 클릭이 셰이프의 첫 번째 좌표 인 IE : 선이되도록하는 것입니다. 이 클릭은 point2d 객체로 캡처됩니다. 두 번째 클릭은 두 번째 point2D 객체가되고 둘 사이에 선이 만들어집니다. 컨트롤러 영역에는 "원", "선", "엘립스"와 같은 버튼이 있습니다. 클릭 한 컨트롤러 버튼에 따라 해당 유형의 모양 만 그리기 영역에 그려집니다. 컨트롤러 및 속성 스크롤 창은 움직일 수 없으며 각각 GUI의 아래쪽 및 오른쪽으로 잠그고 크기를 조정할 수 있습니다.
초심자로서, 나는 최고의 구성 요소를 사용하는 데 어려움을 겪고 있습니다. 나는 JDesktop과 JInternalFrame에 대해 읽었지만 실제로 그렇게 할 필요는없는 것처럼 보인다. 3 개의 JPanel을 가진 간단한 JFrame으로 충분합니다. 좀 더 구체적으로 말하자면 드로잉 프레임 용 JPanel과 두 개의 JScrollPanels를 사용하여 최상위 JFrame이 필요하다고 생각합니다. 각 클릭의 좌표를 캡처하기 위해 그리기 창에 마우스 수신기가 필요하며 컨트롤 창의 각 버튼에 대한 수신기가 있어야합니다. JPanel에 마우스 수신기를 놓고 Java2D 셰이프를 드로잉 할 수 있습니까? 아니면 JPanel에서 드로잉을 수행 할 때 다른 (더 좋은?) 컨테이너가 필요합니까?
간결성을 위해 리팩터링이이 게시물에 어떤 영향을 미치는지 알고 싶습니다. 나는 당신이 공간의 50 %에서 질문을 적절하게 표현할 수있을 것이라고 확신합니다. – xelco52
건설적인 비판에 감사드립니다. 초심자로서 저는이 모든 것을 배우고 있습니다. 어쩌면 내가 알아야 할 모든 것을 배웠을 때, 나는 "간결함을 위해 리팩터링"할 수 있습니다. 물론, 일단 모든 것을 배웠다면 그 질문 자체는 의미가 없습니다. – NickAbbey
건설적인 비판에 대한 긍정적 인 반응 +1. – trashgod