我只是很困惑,爲什麼會發生這種情況。最終,我想有邏輯來測試組件索引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,取決於是否滿足上述條件。
這是很奇怪的行爲。我似乎無法理解爲什麼會發生。幫助將不勝感激。
編輯:如果我這樣做,我得到一個異常:
parentComp.getComponent(0).getClass().getName();
java.lang.ArrayIndexOutOfBoundsException: No such child: 0
所以它顯然不認爲有任何的孩子,竟然有。我在那裏添加它們。
編輯2:我使用聲明爲JComponent的類,但是根據條件將它作爲JMenu或JPopupMenu實現。在這種情況下,它被聲明爲JMenu。也許這是怪異的JMenu行爲?
什麼是'parentComp'? JPanel的? JMenu的? – copeg
發佈SSCCE可能會有所幫助。 – xehpuk
您是否嘗試過添加斷點並逐句通過代碼來隔離問題?這裏你沒有提供足夠的信息。如果我是你,我會爲你提供的第一行代碼添加一個斷點。 –