GLCanvas에서 그릴 응용 프로그램을 사용하고 있습니다. 나는 그 위에 "떠 다니는 메뉴"를 추가하고 싶습니다. (스윙에서 유리창에 메뉴를 추가하여 할 것입니다.) GLCanvas는 Container를 확장하지 않으므로이를 수행하기위한 제안 된 방법은 무엇입니까?GLCanvas에 구성 요소 추가
답변
GLCanvas inherits from java.awt.Component이므로 GLCanvas를 JFrame에 추가 할 때 포함하는 JFrame에서 유리판을 사용할 수 있습니다.
또는 원하는 시각적 효과에 따라 장면이 GLCanvas에서 렌더링 된 후에 glOrtho에 GL 호출을 추가 한 다음 GL 자체의 프리미티브를 사용하여 장면 위에 메뉴를 그릴 수 있습니다. (그럼에도 불구하고 자신의 콜백 동작 등을 조작하는 걸 꼼짝 못하게 될 것입니다 ... 당신이 그것에 들어가기를 원하는지는 확실하지 않습니다.)
팝업 메뉴에 대해 이야기하고 있습니까? MouseListener를 MouseListener에 추가하고 MouseEvent.isPopupTrigger()를 확인한 다음 JPopupMenu를 만듭니다 (중량급 구성 요소 위에 표시하려는 경우 setLightweightPopupEnabled()를 호출하여 MouseListener를 GLCanvas에 추가 할 수 있습니다 거짓) JPopupMenu를 표시 한 다음 JPopupMenu에서 show (glCanvas, x, y)를 호출합니다.
안녕하세요, 팝업 메뉴에 대해 이야기하는 것이 아닙니다. 메뉴가 잘못된 설명이었을 수 있습니다. 플로팅 패널에 가깝습니다. 지금은 고정 된 위치에있을 수 있습니다. 구성 요소를 겹치게하고 GLCanvas와 겹치는 Panel (awt)을 가질 수있는 레이아웃 관리자를 사용해야 할 것입니다. –
- 1. 이클립스에 소프트웨어 구성 요소 추가
- 2. 런타임에 스테이지에 구성 요소 추가
- 3. VBox 구성 요소 (FLEX)에 자식 추가
- 4. VBox에서 애니메이션 구성 요소 추가/삭제
- 5. DataGrid 구성 요소 확장 및 단추 추가
- 6. Windsor Castle의 구성 요소 종속성에 표기법 추가
- 7. 플렉스 4 - 런타임에 새 구성 요소 추가
- 8. 내가 동적으로 캔버스처럼 컨테이너에 구성 요소를 추가 할 구성 요소
- 9. 구성 요소 기반 구성
- 10. Java DataAware 구성 요소
- 11. 사용자 정의 구성 요소 - 구성 요소 팔레트에서 툴팁을 설정하는 방법?
- 12. HBox 하위 구성 요소
- 13. 동적으로 구성 요소 만들기
- 14. SPSS 프로젝트 구성 요소
- 15. Wicket의 장식 요소 구성 요소
- 16. 웹 프로젝트의 구성 요소
- 17. SectionStackSections에 적절한 요소 추가
- 18. silverlight - 구성 요소 재사용
- 19. Generic이있는 Hibernate 구성 요소
- 20. 구성 요소 통신
- 21. AS3 NumericStepper 구성 요소
- 22. trac의 구성 요소 목록 편집
- 23. GWT 날짜 시간 구성 요소
- 24. 구성 요소 -c의 구성 요소 연도가 항상 0001을 반환합니다.
- 25. joomla 구성 요소 1.5에서 joomla 구성 요소 1.6
- 26. 최대 절전 모드 매핑에서 구성 요소 내의 구성 요소
- 27. <f:ajax> 구성 요소 컨텍스트 외부의 구성 요소 업데이트
- 28. JOSM지도 편집기 구성 요소 편집기 구성 요소 작성 것의 사용으로
- 29. 윅스의 GUID 구성 요소
- 30. 드래그 가능한 구성 요소?
캔버스가 실제로 중량이 큰 구성 요소이기 때문에 실제로 유리판 위에 그려 지므로 유리판을 사용할 수 없다고 생각합니다. 그리고 당신이 맞습니다. 저는 제 자신의 콜백 메카니즘을 구현하고 GL 호출을 직접하기를 원하지 않습니다. –
그럼 스윙 구성 요소를 헤비급으로 설정하면 여전히 작동하지 않습니까? 흠 ... 지금 시도해 보니 다음과 같이하면 glcanvas에서 스윙 풀다운 메뉴를 문제없이 렌더링 할 수 있습니다. JPopupMenu.setDefaultLightWeightPopupEnabled (false); ToolTipManager.sharedInstance(). setLightWeightPopupEnabled (false); (JFrame을 사용하기 전에이 작업을 수행해야합니다.) – Decker