gpt4 book ai didi

java - 如何将我的树结构转化为 Jtree?

转载 作者:行者123 更新时间:2023-11-30 04:31:19 25 4
gpt4 key购买 nike

首先我应该说我正在使用 netbeans,而且我对整个 java GUI 游戏还是个新手。

所以,我的问题是我创建了自己的特定于我的项目的树结构,现在我想使用我的结构来构造 JTree。

我正在阅读 Jtree 主题,根据我的理解,我需要在我的结构中实现 TreeModel 接口(interface)。我还读到的另一种方法是使用 DefaultMutableTreeNode,但我找不到任何对我来说清楚的使用它的示例。

现在我已经构建了整个树结构并填充了数据,并试图避免重建它。如何将我的树实现为 Jtree?

package models;

import java.util.ArrayList;
import java.util.List;


public class IngredientTree {

private Node root;


public IngredientTree(){
root = new Node();
}
public IngredientTree(Node rootData) {
root = rootData;
}

public void setRoot(Node n){
root = n;
}

public Node getRoot(){
return root;
}

public void addToTree(Ingredient i){
if(root.getData().getName()=="") // Then it must be the root
root.setData(i);
else
addToTree(root,i);
}
private void addToTree(Node n, Ingredient i){
if(isFirstAdd(n)) //Has no parent and no children
n.addChild(new Node(i,n));
else if(n.hasChildren()){ //Has parent and children
if(!inChildren(n,i)){
if(inNode(n,i))
n.addChild(new Node(i,n));
}
else{
for(Node child : n.getChildren()){
addToTree(child,i);
}
}
}
else{ //Has parent but no children
n.addChild(new Node(i,n));
}
}
private boolean isFirstAdd(Node n){
return(!n.hasParent() && !n.hasChildren());
}
private boolean inChildren(Node n,Ingredient i){
for(Node child : n.getChildren()){
if(inNode(child,i))
return true;
}
return false;
}

private boolean inNode(Node n,Ingredient i){
return(i.getStartIndex() > n.getData().getStartIndex() &&
i.getEndIndex() < n.getData().getEndIndex());
}

public int countIngredients(){
return countIngredients(this.getRoot());
}

private int countIngredients(Node r){
int count = 0;
if(!r.hasChildren()){
return 1;
}else{
for(Node child: r.getChildren()){
count += countIngredients(child);
}
}
return count;
}
}

最佳答案

Would you recommend implementing tree model and basing the reconstruction around that structure?

是的。 FileTreeModel,引用 here ,就是一个例子。如 How to Use Trees: Creating a Data Model 中所述,“您只需要实现树模型,以便它使用现有数据结构中的信息。”

关于java - 如何将我的树结构转化为 Jtree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com