Я просто очень смущен, почему это происходит. В конечном счете, я хочу иметь логику для тестирования компонента с индексом 0, но сначала мне нужен этот метод для точного возврата. Вот пример кода, у меня есть, что возвращается 0:Swing JComponent.getComponentCount() всегда возвращается 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);
Это Println оператор всегда возвращает 0. Я думаю, что он должен либо вернуть 2 или 4, в зависимости от того, если вышеуказанное условие выполнено.
Это очень странное поведение. Кажется, я не понимаю, почему это происходит. Помощь была бы оценена.
Edit: Если я делаю следующее, я получаю исключение:
parentComp.getComponent(0).getClass().getName();
java.lang.ArrayIndexOutOfBoundsException: No such child: 0
так явно не думаю, что есть какие-то дети, но есть. Я добавляю их прямо здесь.
Редактировать 2: Я использую класс, объявленный как JComponent, но который реализуется как JMenu или JPopupMenu в зависимости от условий. В этом случае он объявлен как JMenu. Может быть, это странное поведение JMenu?
Что такое 'parentComp'? JPanel? JMenu? – copeg
Проводка SSCCE может помочь. – xehpuk
Вы пытались добавить контрольные точки и переходить через код, чтобы изолировать проблему? Вы не предоставляете достаточно информации здесь. Если бы я был вами, я бы добавил точку останова в первую строку кода, которую вы предоставили. –