저는 왜 이런 일이 일어나고 있는지 혼란스러워합니다. 궁극적으로 인덱스 0에서 구성 요소를 테스트하는 논리를 갖기를 원하지만 먼저 정확하게 반환하려면이 메서드가 필요합니다. 여기에 내가 그 0을 반환이 코드의 샘플입니다 :Swing JComponent.getComponentCount()는 항상 0을 반환합니다.
가에 println 문은 항상 0 반환parentComp.add(saveAsItem);
parentComp.add(saveItem);
if(manager.getListConfigurations().size() > 0){
parentComp.add(loadMenu);
parentComp.add(removeMenu);
}
System.out.println("COUNT: " + parentComp.getComponents().length);
그건 내가 그것을 반환해야 하나 생각이 2, 4, 위의 조건이 충족되는 경우에 따라 달라집니다.
이것은 매우 이상한 행동입니다. 나는 왜 그것이 일어나고 있는지 이해할 수 없다. 도움을 주시면 감사하겠습니다.
편집 : 나는 다음을 수행하면, 나는 예외가 얻을 :
parentComp.getComponent(0).getClass().getName();
java.lang.ArrayIndexOutOfBoundsException: No such child: 0
는 그래서 명확하게 어떤 아이들이 있다고 생각하지 않습니다, 아직있다. 나는 그들을 거기에 추가하고있다.
편집 2 : JComponent로 선언 된 클래스를 사용하고 있지만 조건에 따라 JMenu 또는 JPopupMenu로 구현됩니다. 이 경우 JMenu로 선언되었습니다. 아마 이상한 JMenu 동작일까요?
'parentComp'란 무엇입니까? JPanel? JMenu? – copeg
SSCCE를 게시하면 도움이 될 수 있습니다. – xehpuk
중단 점을 추가하고 코드를 단계별로 실행하여 문제를 격리 해 보았습니까? 여기서 충분한 정보를 제공하지 않습니다. 내가 너라면, 내가 제공 한 코드의 첫 줄에 중단 점을 추가 할 것이다. –