Я просто очень смущен, почему это происходит. В конечном итоге я хочу иметь логику для проверки компонента с индексом 0, но сначала мне нужно, чтобы этот метод возвращал точное значение. Вот пример кода, который у меня есть, который возвращает 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, в зависимости от того, выполняется ли вышеуказанное условие.
Это очень странное поведение. Я не могу понять, почему это происходит. Помощь приветствуется.
Изменить: если я сделаю следующее, я получу исключение:
parentComp.getComponent(0).getClass().getName();
java.lang.ArrayIndexOutOfBoundsException: No such child: 0
так что он явно не думает, что есть дети, но они есть. Я добавляю их прямо там.
Редактировать 2: я использую класс, объявленный как JComponent, но который реализуется либо как JMenu, либо как JPopupMenu в зависимости от условий. В данном случае он был объявлен как JMenu. Может быть, это странное поведение JMenu?
parentComp
? JPanel? JМеню? - person copeg   schedule 08.09.2016I'm using a class declared as a JComponent, but which gets implemented as either a JMenu or JPopupMenu depending on conditions
Что означает, что вы добавляете элементы JMenuItem? - person copeg   schedule 08.09.2016