JPopupMenu 객체가 있습니다. 그것의 행동은 그것의 좌표에 달려있다. 상위 컨테이너에 대한 위치를 어떻게 얻을 수 있습니까?JPopupMenu 객체의 왼쪽 상단 모서리 위치 얻기
0
A
답변
0
MouseListener
의 방법 (mouseReleased 등)에서 현재 위치가 포함 된 MouseEvent
개체를 받아야합니다. 이러한 값을 사용하지 않으려면 Component#getLocation
메서드를 사용해보십시오. 그렇지 않으면 Component#getLocationOnScreen
하지만 절대 위치를 반환하므로 상대 값을 계산해야합니다.
0
이 솔루션이 있지만, 보안 관리자가있는 경우는 (액세스 할 수 있도록 필드를 강제로) 실패 할 수 있기 때문에이 권장되지 않습니다 :
빨리 더 나은 도움말을public static Container getTopParent(@Nonnull Component c) {
Container lastNotNull = (Container) c;
Container p = c.getParent();
if (p != null)
lastNotNull = p;
while(p != null) {
lastNotNull = p;
p = p.getParent();
}
return lastNotNull;
}
public static int getClickedXThatInvokedPopup(@Nonnull ActionEvent ev) {
try {
JPopupMenu topParent = (JPopupMenu) getTopParent((Component) ev.getSource());
java.lang.reflect.Field fieldX = topParent.getClass().getDeclaredField("desiredLocationX");
fieldX.setAccessible(true);
int x = (Integer) fieldX.get(topParent);
Point p = new Point(x, 0);
SwingUtilities.convertPointFromScreen(p, topParent.getInvoker());
return p.x;
} catch(NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex) {
System.err.println("Cannot get clicked point: " + ex);
return -1;
}
}
관련 문제
- 1. 요소의 시작 위치 및 상단 위치 얻기
- 2. Masonry의 왼쪽 상단 모서리 스탬프를 넣으시겠습니까?
- 3. 이미지의 왼쪽 상단 위치 찾기
- 4. Jquery - 화면의 왼쪽 상단 위치
- 5. 절대 위치, 오른쪽 상단 모서리 (크기 조정)
- 6. 상자에 포함 된 왼쪽 상단 오른쪽 상단 위치 |
- 7. jquery 사용자 위치의 "왼쪽 상단"과 "왼쪽 상단"의 차이점
- 8. CSS 둥근 모서리 상단 왼쪽 모서리가 둥글지 않음. 아이디어?
- 9. 왼쪽 상단 모서리 (0, 0)에서 거리를 계산하는 방법은 무엇입니까?
- 10. Android 왼쪽 상단 버튼
- 11. 왼쪽 상단 및 오른쪽 상단 버튼
- 12. 이미지 가져 오기 안드로이드에서 위치 변경 후 상단 및 왼쪽
- 13. jQuery에서 윈도우의 왼쪽 상단 대신 웹 페이지에서 마우스 위치 계산
- 14. 왼쪽 상단 모서리에서 이맥스 초기화하기
- 15. 자바 GridLayout과 해결 왼쪽 상단
- 16. 스택 상단 위치 결정
- 17. VB6 형식의 마우스 위치 얻기
- 18. JPopupMenu 동작
- 19. JPopupMenu 및 Jmenu 문제
- 20. 요소별로 왼쪽 위치 얻는 방법
- 21. 보호 기능이 켜져있는 상태에서 왼쪽 상단 모서리 오른쪽 버튼을 누르면 응용 프로그램이 충돌 함
- 22. 둥근 모서리
- 23. 보기의 위치 얻기
- 24. CSS 상자 그림자 왼쪽 하단 모서리 놓기
- 25. Quartz Plugin의 왼쪽 위 모서리 찾기
- 26. 경로 좌표 하단 시작 왼쪽 대 상단 왼쪽
- 27. 축 Y를 변경하십시오. "왼쪽 하단"에서 "왼쪽 상단"까지? (OpenGL)
- 28. iframe에서 상단 창 위치 변경
- 29. 요청 대화 상자 상단 위치
- 30. Jquery로 CSS 상단 위치 이동
, (AN [SSCCE] 게시 http://sscce.org/). –