나는 다른 모든 클래스에 넣은 메뉴 막대 클래스 (MenuBarGUI)가 있는데, 메뉴의 옵션을 통해 현재 JFrame을 닫을 수 있는지를 알아야합니다. 일반적으로 setVisible (false)를 호출 한 다음 dispose()를 호출 할 수 있지만 메뉴 막대에 현재 프레임에 대한 참조가 없으므로이를 수행 할 수 없습니다. 이 일을 할 수있는 방법이 있습니까?Java에서 현재 프레임에 대한 참조를 가져 오는 방법이 있습니까?
답변
, 당신은 메뉴 표시 줄의 창을 얻을 수 getTopLevelAncestor 방법을 사용할 수 있습니다 : 여기
은 예입니다.getParent()
은 상위 컨테이너를 가져옵니다. 이 방법을 사용하면 일부 캐스팅을 수행해야합니다. 보다 이상적인 옵션은 메뉴 바가 close 메소드를 포함하는 인터페이스를 가질 수있게하는 것입니다. 당신의 MenuBarGUI 클래스의 JMenuBar를 확장하는 경우
JFrame frame = new JFrame();
JMenuBar bar = new JMenuBar();
frame.setJMenuBar(bar);
if(bar.getParent().getParent().getParent() instanceof JFrame){
System.out.println(bar.getParent().getParent().getParent());
}
? 컨테이너를 창에 던지는 것이 얼마나 안전 할 지 확신하지 못합니다 (매우 안전하지 않은 것 같습니다). 또한 어떻게 다른 방법을 구현할 수 있습니까? – LOD121
예제를 추가했지만이 경로를 사용하는 경우 Gursel의 getTopLevelAncestor 제안이 더 적절할 것입니다. – jzd
감사합니다. instanceof를 사용하여 JFrame 인스턴스인지 확인한 다음 컨테이너를 JFrame에 캐스팅하고 setVisible (false) 및 dispose()를 수행하여 창을 닫습니다. 잘 돌아갔다. – LOD121
위의 방법 중 어느 것도 나를 위해 작동하지 않았습니다.
난 단지 패널의 바로 위 부모를 필요로하기 때문에
은 슈퍼 호출을 통해 직접 액세스 : 등 super.setTitle ("새로운 프레임 제목"), 나는의 getParent() 메소드를 구현할 수 정확히 어떻게- 1. HashSet의 현재 용량을 가져 오는 방법이 있습니까?
- 2. IPhone - 현재 화면에있는 셀에 대한 참조를 가져옵니다.
- 3. Java에서 Reflection을 통해 InnerClasses 목록을 가져 오는 방법이 있습니까?
- 4. Java에서 입력하지 않고 키보드에서 문자를 가져 오는 쉬운 방법이 있습니까?
- 5. Java에서 표시 이름이 지정된 Locale을 가져 오는 방법이 있습니까?
- 6. Include 파일에서 현재 유닛의 이름을 가져 오는 방법이 있습니까?
- 7. 응용 프로그램의 현재 상태를 가져 오는 방법이 있습니까?
- 8. 컨트롤러 내부에서 현재 URL을 가져 오는 방법이 있습니까?
- 9. Blogger에서 현재 게시물 URL을 가져 오는 방법이 있습니까?
- 10. 현재 속성 이름을 가져 오는 좋은 방법이 있습니까?
- 11. 응용 프로그램의 GUI를 현재 데스크탑으로 가져 오는 방법이 있습니까?
- 12. 도메인 서비스에서 현재 URL을 가져 오는 방법이 있습니까?
- 13. sqlcmd에서 현재 실행중인 파일을 가져 오는 방법이 있습니까?
- 14. asp 웹 서비스 메서드에서 현재 페이지 참조를 가져 오는 방법?
- 15. UILabel 텍스트의 shadowPath를 가져 오는 방법이 있습니까?
- 16. div의 스타일 속성을 가져 오는 방법이 있습니까?
- 17. SQLite로 데이터를 가져 오는 쉬운 방법이 있습니까?
- 18. iCal 파일을 FullCalendar로 가져 오는 방법이 있습니까?
- 19. 버즈에서 댓글을 가져 오는 방법이 있습니까?
- 20. 메서드의 호출자에 대한 참조를 가져 오는 일반적인 방법은 무엇입니까?
- 21. ClassLoader가로드 한 클래스를 가져 오는 방법이 있습니까?
- 22. Window에 대한 모든 BindingExpression 객체를 가져 오는 방법이 있습니까?
- 23. 리본 객체에 대한 참조를 가져 오는 "적절한"방법은 무엇입니까?
- 24. Java에서 클래스에 대한 참조를 저장하는 방법은 무엇입니까?
- 25. 대기열의 마지막 요소를 가져 오는 방법이 있습니까?
- 26. 등록 주소를 가져 오는 방법이 있습니까?
- 27. 스크롤바 높이와 너비를 가져 오는 방법이 있습니까?
- 28. DOMElement의 모든 속성을 가져 오는 방법이 있습니까?
- 29. Open Graph에서 데이터를 가져 오는 방법이 있습니까?
- 30. $ .ajax의 기본 객체를 가져 오는 방법이 있습니까
감사합니다. 이것은 효과가 있었다. 컨테이너를 캐스팅하고 setVisible (false) 및 dispose()를 호출하면 작동했습니다. – LOD121