7
구성 요소의 최상위 컨테이너를 가져 오는 방법이 있습니까? 예를 들어 나는 JToolbar를 가지고 있고 그 JToolbar의 최상위 컨테이너가 JFrame이거나 자체 윈도우 인 JDialog를 알고 싶습니다.JComponent의 최상위 컨테이너를 얻는 방법?
구성 요소의 최상위 컨테이너를 가져 오는 방법이 있습니까? 예를 들어 나는 JToolbar를 가지고 있고 그 JToolbar의 최상위 컨테이너가 JFrame이거나 자체 윈도우 인 JDialog를 알고 싶습니다.JComponent의 최상위 컨테이너를 얻는 방법?
SwingUtilities.windowForComponent(...);
구성 요소가 계층 구조에 추가 된 경우, 재귀 getParent
를 호출하여 최상위 컨테이너를 찾아 볼 수 있습니다 :
Container c = toolbar;
while (c.getParent() != null)
{
c = c.getParent();
}
if (c instanceof JFrame)
{
//...
}
오늘은이 같은 문제에 직면하고 정확하게 recurive 방법을했고, 잘 했어. 실제로 구성 요소의 컨테이너가 JPanel 인 경우 승인 된 응답이 작동하지 않습니다. 그래서 나는 두 번째 대답이 더 유연하다는 것을 믿습니다. 왜냐하면 당신은 무엇을 찾을 지 선택하게됩니다 .... – HoNgOuRu