Poise estou quebrando a cabeca aqui com o select do JTree para que saia uma copia igual para um outro JTree
sendo que so o que foi selecionado sairia no segundo jTree, no codigo que estou mandando abaixo segue a funcao do botao que manda o evento copy select, so que na hora de criar o node 2 3 4 ele so cria ate o 2 exemplo:
root
Colors
Azul
Azul Calcinha
Azul Escuro
Obs.: O Azul escuro e Azul calcinha deveria entrar no node Azul (root) sendo filhos dele, mas permanece filhos do Colors para orientar coloquei o numero do node onde deviria se encontrar na frente de cada Item Selecionado segue entao o codigo:
private void jButton2ActionPerformed(ActionEvent evt) {
Object[] novoObject = jTree1.getSelectionPath().getPath();
while (novoObject.length > varContaLoop)
setNodeSelect(novoObject);
varContaLoop = 0;
setNodeList();
}
protected void setNodeList() {
DefaultMutableTreeNode tempNode = null;
tempNode = new DefaultMutableTreeNode(varNodeUse.get(0));
varMutableNode.add(tempNode);
for (int i = 1; i < varNodeUse.size(); i++) {
tempNode = new DefaultMutableTreeNode(varNodeUse.get(i));
int varNodeLocal = getNodeLocal(String.valueOf(varNodeUse.get(i)));
if (varNodeLocal > 0)
varNodeLocal = varNodeLocal - 1;
if ((i == 0) && (varNodeLocal <= 0))
varMutableNode.get(varNodeLocal).add(tempNode);
}
for (int i = 0; i < varMutableNode.size(); i++) {
root.add(varNodeUse.get(i));
}
DefaultTreeModel varModelAdd = new DefaultTreeModel(root);
jTree2.setModel(varModelAdd);
jTree1.clearSelection();
}
protected int getNodeLocal(String varNodeNome) {
String Palavra = “”;
int x = 1;
while ((varNodeNome.length() > x)
&& (!String.valueOf(varNodeNome.charAt(x)).equals("]"))) {
if (!String.valueOf(varNodeNome.charAt(x)).equals("]"))
Palavra = Palavra + varNodeNome.charAt(x);
x++;
}
return Integer.parseInt(Palavra);
}
protected void setNodeSelect(Object[] varSelect) {
boolean varBool = false;
int y = 0;
int NodeSize = varNodeUse.size();
for (int x = 0; x < NodeSize; x++) {
while (y < varNodeUse.size()) {
if (("[" + y + “]” + String.valueOf(varSelect[varContaLoop])).equals(String.valueOf(varNodeUse.get(y))))
varBool = true;
y++;
}
}
if (varNodeUse.size() <= 1)
varNodeUse.add(new DefaultMutableTreeNode("[" + varContaLoop + “]”
+ String.valueOf(varSelect[varContaLoop])));
else {
if (!varBool) {
varNodeUse.add(new DefaultMutableTreeNode("[" + varContaLoop
+ “]” + String.valueOf(varSelect[varContaLoop])));
}
}
varContaLoop++;
}