private void addGroupToNode(DefaultMutableTreeNode node, ArmylistWargearGroup group) { DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(); newNode.setUserObject(new WargearTreeUserObjectContainer(group, newNode, node)); node.add(newNode); Iterator subGroups = group.getSubGroups().iterator(); while (subGroups.hasNext()) { ArmylistWargearGroup subGroup = (ArmylistWargearGroup) subGroups.next(); this.addGroupToNode(newNode, subGroup); } Iterator items = group.getItems().iterator(); while (items.hasNext()) { DefaultMutableTreeNode temp = new DefaultMutableTreeNode(); ArmylistWargearItem item = (ArmylistWargearItem) items.next(); WargearTreeUserObjectContainer container = new WargearTreeUserObjectContainer(item, temp, newNode); container.setItemGroup(group); temp.setUserObject(container); newNode.add(temp); } }