J'essaie de créer un TreeTableView
modifiable à partir d'un document XML. Pour cela, j'emballe les éléments du document dans une classe. Les données des éléments sont stockées dans la clé d'attributs et val. Mon Wrapper se compose dePointeur nul sur la création d'un wrapper d'élément
private Element node;
private final StringProperty key = new SimpleStringProperty(this, node.getAttribute("key"), "temp");
private final StringProperty val = new SimpleStringProperty(this, node.getAttribute("val"), "temp");
public ElementWrapper(Element n){
System.out.println("creating element "+n.getNodeName());
node = n;
}
public String getKey(){
return key.get();
}
@Override
public String getVal(){
return key.get();
}
public void setKey(String key){
((Element)node).setAttribute("key", key);
}
@Override
public void setVal(String value){
((Element)node).setAttribute("val", value);
}
@Override
public Element getElement(){
return node;
}
@Override
public StringProperty keyProperty(){
return key;
}
@Override
public StringProperty valProperty(){
return val;
}
j'ai écrit un algorithme récursif qui crée les éléments d'arbre et les met à
TreeItem<NodeWrapper> newsub = new TreeItem<>(new ElementWrapper(current));
où le courant est le élément XML. À ce stade, je reçois un NullPointerException
pour lib.ElementWrapper.<init>(ElementWrapper.java:21)
qui est la deuxième ligne de la classe Wrapper
affichée ci-dessus. Comment régler ceci correctement?
Eh bien, cela semble être la raison avec le pointeur nul, seul problème que j'ai maintenant est que les éléments ne seront pas définis avec la valeur désirée de l'attribut. peut-être que je dois comprendre pourquoi ils ne voient que la valeur initiale – chenino
@chenino Désolé, pourriez-vous fournir plus de détails ce qui ne va pas? –
Trouvé la solution déjà, a fait une modification à votre réponse et l'a marqué. Si je place la dernière valeur sur la construction à null, les valeurs ne seraient pas mises à jour sur la table d'arbre. Fixé ceci, maintenant everythign travaille pour moi. Merci beaucoup Andrii! – chenino