Ich bin nur sehr verwirrt, warum das passiert. Letztendlich möchte ich eine Logik haben, um die Komponente am Index 0 zu testen, aber zuerst muss diese Methode genau zurückgegeben werden. Hier ist ein Beispiel des Codes Ich habe das 0 zurückkehrt:Swing JComponent.getComponentCount() gibt immer 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);
Die println Anweisung immer 0 zurück Ich denke, es wäre entweder 2 oder 4 zurückgeben sollte, je nachdem, ob die obige Bedingung erfüllt ist.
Das ist sehr seltsames Verhalten. Ich kann nicht verstehen, warum es passiert. Hilfe wäre willkommen.
Edit: Wenn ich den folgenden Code, erhalte ich eine Ausnahme:
parentComp.getComponent(0).getClass().getName();
java.lang.ArrayIndexOutOfBoundsException: No such child: 0
so klar ist es nicht, dass es Kinder gibt, aber es gibt. Ich füge sie genau dort hinzu.
Edit 2: Ich verwende eine Klasse deklariert als eine JComponent, die je nach Bedingungen entweder als JMenu oder JPopupMenu implementiert wird. In diesem Fall wurde es als JMenu deklariert. Vielleicht ist es komisches JMenu Verhalten?
Was ist 'parentComp'? JPanel? JMenu? – copeg
Das Posten eines SSCCE kann helfen. – xehpuk
Haben Sie versucht, Breakpoints hinzuzufügen und den Code durchzugehen, um das Problem zu isolieren? Sie liefern hier nicht genügend Informationen. Wenn ich Sie wäre, würde ich einen Breakpoint zu der ersten von Ihnen bereitgestellten Codezeile hinzufügen. –