Я пытаюсь создать JTree для отображения в моем приложении, которое отобразит внутреннюю структуру данных моего приложения. Я использую HashTable для инициализации всех моих объектов, которые используют каждый индекс объектов, который вы можете получить с помощью getIndex(). Я пытаюсь создать JTree, используя только имена каждого объекта, который будет отображаться.Создание JTree с использованием HashMap
Я не могу точно определить, как получить правильные добавления узлов. Я создаю новый узел, но я не могу ссылаться на него как на родительский узел.
Здесь я создаю мой JTree и корневой узел:
JTree tree;
DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode("Cave");
tree = new JTree(treeRoot);
Здесь я создаю узел, представляющий объект партии, что является новым потомком корневого узла:
//DefaultMutableTreeNode newParty.getIndex(); //!Does not work
//DefaultMutableTreeNode newParty.getIndex() = new DefaultMutableTreeNode(newParty.getName() , treeRoot); //does not work
addNode(newParty.getName(), treeRoot);
пыльник является AddNode Метод:
static DefaultMutableTreeNode addNode (String Asset, DefaultMutableTreeNode parent){
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(Asset);
parent.add(newNode);
return newNode;
}
И здесь я пытаюсь добавить узел Существо, являющееся дочерним узлом определенного узла узла:
findParty = (newCreature.getParty());// == index of parent Node in HashMap
if (findParty == 0) {
SorcerersCave.theCave.addCreature(newCreature);
addNode (newCreature.getName(), treeRoot);
}else {
((Party)gameAssets.get(findParty)).addMember(newCreature);
gameAssets.put( newCreature .getIndex(), newCreature);
addNode (newCreature.getName(), ((Party)gameAssets.get(findParty).getName()));
В идеале я хотел бы создать узлы, представленные каждый индекс объектов INT, то я мог бы добавить, что узел в дерево с правильным текстом отображается и родительский. Как вы можете видеть, я пытаюсь сделать это несколько раз, но ничто, кажется, действительно не прилипает.
Для получения более полной помощи, отправьте сообщение [SSCCE] (http://sscce.org/), краткое, выполнимое, компилируемое, с жесткокодированным значением для HashMap в локальной переменной – mKorbel
См. Также [Q & A] (http: // stackoverflow.com/q/16072182/230513). – trashgod
@mKorbel Я понял свою проблему и решил ее. Это была действительно проблема с тем, где я пытался создать экземпляр узлов, я думаю, что это был вопрос ООП, а затем вопрос JTree/HashMap. Я хотел бы изменить вопрос, чтобы лучше описать проблему, чтобы она могла лучше помочь другим, я просто не знаю, как ее изменить. Какие-либо предложения? –